繁体   English   中英

相当于jQuery中的Underscore.js _.pluck

[英]Equivalent of Underscore.js _.pluck in jQuery

有没有人知道匹配下划线数组方法的'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"]

谷歌今天对我帮助不大。 任何指针都非常赞赏

你可以用表达式来做;

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

只写自己的

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

自己实现这个功能非常简单:

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

它所做的只是迭代原始数组的元素(每个元素都是一个对象),从该对象获取您指定的属性,并将其放在一个新数组中。

在简单的情况下:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM