web-dev-qa-db-ja.com

LoDash:オブジェクトプロパティの配列から値の配列を取得します

それは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'));
130
YarGnawh

バージョン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]
263
dfsq

純粋なJSでは:

var userIds = users.map( function(obj) { return obj.id; } );
15
c-smile

新しいlodashリリースv4.0.0で、_.pluck_.mapを支持して削除しました

それからこれを使うことができます:

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

Githubの変更履歴 にあります。

12
iarroyo

そして、各オブジェクトからいくつかのプロパティを抽出する必要があるならば、

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