Yar*_*awh 144 javascript 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'));
Run Code Online (Sandbox Code Playgroud)
dfs*_*fsq 290
从版本v4.x开始,您应该使用_.map:
_.map(users, 'id'); // [12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)
这样它就对应于您要编写的本机Array.prototype.map方法(ES2015语法):
users.map(user => user.id); // [12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)
在v4.x之前,您可以使用_.pluck相同的方式:
_.pluck(users, 'id'); // [12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)
c-s*_*ile 17
使用纯JS:
var userIds = users.map( function(obj) { return obj.id; } );
Run Code Online (Sandbox Code Playgroud)
iar*_*oyo 14
在新的lodash版本中,v4.0.0 _.pluck已经删除了赞成_.map
然后你可以使用这个:
_.map(users, 'id'); // [12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)
你可以在Github Changelog中看到
GYT*_*YTO 11
通过 ES6 获取它的简单甚至更快的方法
let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]
Run Code Online (Sandbox Code Playgroud)
And*_*rey 10
如果您需要从每个对象中提取多个属性,那么
let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140374 次 |
| 最近记录: |