jquery - react - underscore lodash
Equivalente de Underscore.js_.pluck en jQuery (4)
En caso simple:
var arr = stooges.map(function(v) { return v.name; });
Más generalizado:
function pluck(list, propertyName) {
return list.map(function (v) { return v[propertyName]; })
}
Pero, en mi humilde opinión, no debe implementarlo como una función de herramienta, sino usar el caso simple siempre .
Actualización 2018:
var arr = stooges.map(({ name }) => name);
¿Alguien sabe de un complemento ''desplumar'' que coincida con el método de matriz de subrayado?
pluck_.pluck(list, propertyName)
Una versión conveniente de lo que quizás sea el caso de uso más común para el mapa: extraer una lista de valores de propiedad.
var stooges = [{name : ''moe'', age : 40}, {name : ''larry'', age : 50}, {name : ''curly'', age : 60}];
_.pluck(stooges, ''name'');
=> ["moe", "larry", "curly"]
Google no me está ayudando mucho hoy. Cualquier puntero muy apreciado
Es muy sencillo implementar esta funcionalidad usted mismo:
function pluck(originalArr, prop) {
var newArr = [];
for(var i = 0; i < originalArr.length; i++) {
newArr[i] = originalArr[i][prop];
}
return newArr;
}
Todo lo que hace es iterar sobre los elementos de la matriz original (cada uno de los cuales es un objeto), obtener la propiedad que especifique de ese objeto y colocarla en una nueva matriz.
Puedes hacerlo con una expresión;
var arr = $.map(stooges, function(o) { return o["name"]; })
solo escribe el tuyo
$.pluck = function(arr, key) {
return $.map(arr, function(e) { return e[key]; })
}