LoDash:从对象属性数组中获取值数组
LoDash: Get an array of values from an array of object properties
我确定它在 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'));
从版本 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]
这将在弹出窗口中为您提供所需内容。
for(var i = 0; i < users.Count; i++){
alert(users[i].id);
}
使用纯 JS:
var userIds = users.map( function(obj) { return obj.id; } );
在新的 lodash 版本 v4.0.0 中删除了 _.pluck
_.map
那么你可以使用这个:
_.map(users, 'id'); // [12, 14, 16, 18]
您可以在Github Changelog
中看到
如果您使用的是原生 javascript 那么您可以使用此代码 -
let ids = users.map(function(obj, index) {
return obj.id;
})
console.log(ids); //[12, 14, 16, 18]
如果您需要从每个对象中提取多个属性,那么
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));
通过 ES6 获取它的简单甚至更快的方法
let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]
const users = [{
id: 12,
name: 'Adam'
},{
id: 14,
name: 'Bob'
},{
id: 16,
name: 'Charlie'
},{
id: 18,
name: 'David'
}
]
const userIds = _.values(users);
console.log(userIds); //[12, 14, 16, 18]
我确定它在 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'));
从版本 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]
这将在弹出窗口中为您提供所需内容。
for(var i = 0; i < users.Count; i++){
alert(users[i].id);
}
使用纯 JS:
var userIds = users.map( function(obj) { return obj.id; } );
在新的 lodash 版本 v4.0.0 中删除了 _.pluck
_.map
那么你可以使用这个:
_.map(users, 'id'); // [12, 14, 16, 18]
您可以在Github Changelog
中看到如果您使用的是原生 javascript 那么您可以使用此代码 -
let ids = users.map(function(obj, index) {
return obj.id;
})
console.log(ids); //[12, 14, 16, 18]
如果您需要从每个对象中提取多个属性,那么
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));
通过 ES6 获取它的简单甚至更快的方法
let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]
const users = [{
id: 12,
name: 'Adam'
},{
id: 14,
name: 'Bob'
},{
id: 16,
name: 'Charlie'
},{
id: 18,
name: 'David'
}
]
const userIds = _.values(users);
console.log(userIds); //[12, 14, 16, 18]