有没有人知道匹配下划线数组方法的'pluck'插件?
pluck_.pluck(list, propertyName)
可能是map最常见的用例的便捷版本:提取属性值列表。
var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]
Google今天对我帮助不大。 任何指针都非常赞赏
答案 0 :(得分:30)
你可以用表达式来做;
var arr = $.map(stooges, function(o) { return o["name"]; })
答案 1 :(得分:22)
只写自己的
$.pluck = function(arr, key) {
return $.map(arr, function(e) { return e[key]; })
}
答案 2 :(得分:9)
自己实现此功能非常简单:
function pluck(originalArr, prop) {
var newArr = [];
for(var i = 0; i < originalArr.length; i++) {
newArr[i] = originalArr[i][prop];
}
return newArr;
}
它只是迭代原始数组的元素(每个元素都是一个对象),从该对象获取您指定的属性,并将其放在一个新数组中。
答案 3 :(得分:1)
简单来说:
var arr = stooges.map(function(v) { return v.name; });
更广义:
function pluck(list, propertyName) {
return list.map(function (v) { return v[propertyName]; })
}
但是,恕我直言,你不应该把它当作工具函数来实现,而是使用简单的情况总是。
2018更新:
var arr = stooges.map(({ name }) => name);