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

Ответ 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; } );

Ответ 3

В новом выпуске lodash v4.0.0 _.pluck удален в пользу _.map

Затем вы можете использовать это:

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

Вы можете увидеть в Github Changelog

Ответ 4

Это даст вам то, что вы хотите во всплывающем окне.

for(var i = 0; i < users.Count; i++){
   alert(users[i].id);  
}