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