Je suis sûr que cela se trouve quelque part dans la documentation LoDash, mais je n'arrive pas à trouver la bonne combinaison.
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'));
Depuis la version v4.x, vous devez utiliser _.map
:
__.map(users, 'id'); // [12, 14, 16, 18]
_
ainsi, elle correspond à la méthode native Array.prototype.map où vous écririez (syntaxe ES2015):
_users.map(user => user.id); // [12, 14, 16, 18]
_
Avant la version 4.x, vous pouviez utiliser _.pluck
de la même manière:
__.pluck(users, 'id'); // [12, 14, 16, 18]
_
Avec JS pur:
var userIds = users.map( function(obj) { return obj.id; } );
Dans la nouvelle version de lodash v4.0.0 _.pluck
s'est retiré en faveur de _.map
Ensuite, vous pouvez utiliser ceci:
_.map(users, 'id'); // [12, 14, 16, 18]
Vous pouvez voir dans Github Changelog
Et si vous devez extraire plusieurs propriétés de chaque objet, alors
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));