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

2022-08-30 01:22:23

我确信它在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'));

答案 1

从版本 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]

答案 2

使用纯 JS:

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