[英]How to transform array of objects into one object by Lodash
Example from this: 来自此的示例:
[
{"name":"tony", "age":14},
{"name":"jacky", "age":23},
{"name":"lucy", "age":34},
{"name":"sam", "age":15},
{"name":"jay", "age":31}
]
to: 至:
{
"tony": [],
"jacky": [],
"lucy": [],
"sam": [],
"jay": []
}
There is no need to use Lodash
. 无需使用
Lodash
。 Array.prototype.reduce()
will do the job. Array.prototype.reduce()
将完成这项工作。
const data = [ {"name":"tony", "age":14}, {"name":"jacky", "age":23}, {"name":"lucy", "age":34}, {"name":"sam", "age":15}, {"name":"jay", "age":31} ]; const result = data.reduce((acc, curr) => { acc[curr.name] = []; return acc; }, {}); console.log(result);
Try with Array#forEach
function . 尝试使用
Array#forEach
函数。
var arr =[ {"name":"tony", "age":14}, {"name":"jacky", "age":23}, {"name":"lucy", "age":34}, {"name":"sam", "age":15}, {"name":"jay", "age":31} ] var obj={} arr.forEach(function(a){ obj[a.name]=[] }) console.log(obj)
Or simple do with Array#reduce
或简单地使用
Array#reduce
var arr =[ {"name":"tony", "age":14}, {"name":"jacky", "age":23}, {"name":"lucy", "age":34}, {"name":"sam", "age":15}, {"name":"jay", "age":31} ] var res = arr.reduce((a,b) => (a[b.name]=[] ,a),{}) console.log(res)
如果您不想使用for
或reduce
,那么这是一个单点划线
_(data).keyBy('name').mapValues(() => []).value()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.