举个例子,我基本上试图从:
[
{
'a':a1,
'b':b2
},
{
'a':a1,
'b':b5
},
{
'a':a3,
'b':b4
}
]
致:
[
{
'group':'a1',
'content':[
{
'a':a1,
'b':b2
},
{
'a':a1,
'b':b5
}
],
},
{
'group':'a3',
'content':[
{
'a':a3,
'b':b4
}
]
}
]
因此,在单词重新格式化属性上的数组和组元素时,请a
答案 0 :(得分:1)
使用lodash GroupBy有一种简单的方法
https://lodash.com/docs#groupBy
_.groupBy([
{
'a':"a1",
'b':"b2"
},
{
'a':"a1",
'b':"b5"
},
{
'a':"a3",
'b':"b4"
}
], "a")
要分组的数组的第一个参数,第二个是要分组的迭代器,结果将分组在一个数组中,它不具有内容的前置。
{
"a1":[
{
"a":"a1",
"b":"b2"
},
{
"a":"a1",
"b":"b5"
}
],
"a3":[
{
"a":"a3",
"b":"b4"
}
]
}
看看这是否有助于您前进,如果没有,请告诉我
答案 1 :(得分:0)
如果只需要该分组数组,则可以使用reducer实现。
`let group = data.reduce((r, a) => {
r[a.a] = [...r[a.a] || [], a];
return r;
}, {});`
var data = [
{
'a':'a1',
'b':'b2'
},
{
'a':'a1',
'b':'b5'
},
{
'a':'a3',
'b':'b4'
}
]
let group = data.reduce((r, a) => {
r[a.a] = [...r[a.a] || [], a];
return r;
}, {});
console.log("group", group);