LoDash:从对象属性数组中获取值数组

2020/10/27 19:22 · javascript ·  · 0评论

我确定它在LoDash文档内,但我似乎找不到正确的组合。

var users = [{
      id: 12,
      name: 'Adam'
   },{
      id: 14,
      name: 'Bob'
   },{
      id: 16,
      name: 'Charlie'
   },{
      id: 18,
      name: 'David'
   }
]

// how do I get [12, 14, 16, 18]
var userIds = _.map(users, _.pick('id'));

从v4.x版本开始,您应该使用_.map

_.map(users, 'id'); // [12, 14, 16, 18]

这样,它对应于您要编写的本机Array.prototype.map方法(ES2015语法):

users.map(user => user.id); // [12, 14, 16, 18]

在v4.x之前,您可以使用_.pluck相同的方式:

_.pluck(users, 'id'); // [12, 14, 16, 18]

使用纯JS:

var userIds = users.map( function(obj) { return obj.id; } );

在新的lodash版本v4.0.0 _.pluck中,删除了_.map

然后,您可以使用以下代码:

_.map(users, 'id'); // [12, 14, 16, 18]

您可以在Github Changelog中看到

而且,如果您需要从每个对象中提取多个属性,则

let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));

通过ES6获得它的简单甚至更快的方法

let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]

如果您使用的是本地JavaScript,则可以使用以下代码-

let ids = users.map(function(obj, index) {

    return obj.id;
})

console.log(ids); //[12, 14, 16, 18]

这将在弹出窗口中为您提供所需的内容。

for(var i = 0; i < users.Count; i++){
   alert(users[i].id);  
}
本文地址:http://javascript.askforanswer.com/lodashcongduixiangshuxingshuzuzhonghuoquzhishuzu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!