我正在尝试使用纯JS重新创建Underscore pluck函数。然而,我一直得到一个由未定义的数组返回,而不是来自数组对象属性的实际值。
在检查另一个线程 这里 ,我发现你可以通过以下代码在jQuery中重现它...
$.pluck = function(arr, key) {
return $.map(arr, function(e) { return e[key]; })
}
...但是我在纯JS中复现它时遇到了困难。我尝试了以下方法,但是它对我来说只返回一个未定义的数组。
var pluck = function(arr,key){
var newArr = [];
for (var i = 0, x = arr.length; i < x; i++){
if (arr[i].hasOwnProperty(key)){
newArr.push(arr[i].key)
}
}
return newArr;
}
因此,目标如下,只是不使用下划线_.pluck,而是使用JS函数名称,例如。 var pluck = function(arr,key){...}
var Tuts = [{name : 'NetTuts', niche : 'Web Development'}, {name : 'WPTuts', niche : 'WordPress'}, {name : 'PSDTuts', niche : 'PhotoShop'}, {name : 'AeTuts', niche : 'After Effects'}];
var niches = _.pluck(Tuts, 'niche');
console.log(niches);
// ["Web Development", "WordPress", "PhotoShop", "After Effects"]
有人能指导我朝正确的方向吗?
_.pluck
模块。 - Julian