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]
在新的lodash版本v4.0.0中,_.pluck
已被删除,取而代之的是_.map
然后你可以使用这个:
_.map(users, 'id'); // [12, 14, 16, 18]
您可以在Github Changelog 中看到
使用纯JS:
var userIds = users.map( function(obj) { return obj.id; } );
如果你需要从每个对象中提取几个属性,那么
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));
通过ES6 获得它的简单而快速的方法
let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]
如果您使用的是本机javascript,那么您可以使用以下代码-
let ids = users.map(function(obj, index) {
return obj.id;
})
console.log(ids); //[12, 14, 16, 18]
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]
这将在弹出窗口中为您提供所需内容。
for(var i = 0; i < users.Count; i++){
alert(users[i].id);
}
相关文章:
- 正则表达式,从一组关键字中获取奇数
- 如何在javascript中获取一组复选框值
- LoDash:从一组对象属性中获取一组值
- 如何从一组元素中获取 ID 并保存在数组中
- 将一组选中的复选框的值获取到 JavaScript 数组中,并在 ajax 请求中传递它们
- 列出使用 Google 地图地理编码器 API 获取的一组地址
- 递归地获取Javascript中一组数字的所有可能组合
- 如何在bxslider中获取一组活动幻灯片
- Ember循环遍历一组复选框并获取选中的项目
- 如何在谷歌地图上制作一组标记,从html中获取地址
- 按另一个数组的ID从一个数组获取数据
- 获取谷歌地图上一组标记的东北角和西南角
- Backbone.js:获取一组模型并进行渲染
- 使用Angularfire从Firebase获取一组特定的密钥
- 当选择相应的复选框发送值spring-mvc控制器时,使用jQuery从一组html元素中获取值
- 如何获取输入字段,根据一组规则过滤输入并应用于另一个字段
- 从一组相同的项中获取项的索引
- 如何使用jquery在一组选定元素中获取元素的顺序?
- 如何使用jQuery或JavaScript从一组选中的复选框中获取类名数组
- 从一组DOM元素中获取最高的属性值