Подтвердить что ты не робот

Эквивалент Underscore.js _.pluck в jQuery

Кто-нибудь знает о плагине "pluck", который соответствует методу массива подчеркивания?

pluck_.pluck(list, propertyName) 

Удобная версия, пожалуй, наиболее распространенного случая использования для карты: извлечение списка значений свойств.

var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]

Сегодня Google не очень помогает мне. Любые указатели очень ценили

4b9b3361

Ответ 1

Вы можете сделать это с помощью выражения;

var arr = $.map(stooges, function(o) { return o["name"]; })

Ответ 2

просто напишите свой собственный

$.pluck = function(arr, key) { 
    return $.map(arr, function(e) { return e[key]; }) 
}

Ответ 3

Очень просто реализовать эту функциональность самостоятельно:

function pluck(originalArr, prop) {
    var newArr = [];
    for(var i = 0; i < originalArr.length; i++) {
        newArr[i] = originalArr[i][prop];
    }
    return newArr;
}

Все, что он делает, это перебрать элементы исходного массива (каждый из которых является объектом), получить свойство, указанное вами из этого объекта, и поместить его в новый массив.

Ответ 4

В простом случае:

var arr = stooges.map(function(v) { return v.name; });

Более обобщенное:

function pluck(list, propertyName) {
    return list.map(function (v) { return v[propertyName]; })
}

Но, IMHO, вы не должны реализовывать его как функцию инструмента, но всегда используйте простой случай.