有一组数据,结构如下:
{ id: 4335,
uid: 43,
card: { id: 27, name: '啊啊', pinyinIndex: 'a' } }
{ id: 4336,
uid: 43,
card: { id: 28, name: '旺旺', pinyinIndex: 'w' } }
{ id: 4293,
uid: 43,
card: { id: 29, name: '123', pinyinIndex: '1' } }
{ id: 4337,
uid: 43,
card: { id: 42, name: '1122 ', pinyinIndex: '1' } }
希望得到根据字段 pinyinIndex
汇总的结果,类似这样的结果:
{
[
pinyinIndex: 1,
{
id: 4337,
uid: 43,
card: { id: 42, name: '1122 ', pinyinIndex: '1' }
},
{
id: 4293,
uid: 43,
card: { id: 42, name: '123 ', pinyinIndex: '1' }
},
],
[
pinyinIndex: a,
{
id: 4335,
uid: 43,
card: { id: 27, name: '啊啊', pinyinIndex: 'a' }
},
]
}
目前用了一个map的方式,但是map不能同时对一个键赋值两次,所以出来的结果总是只有一个值:
const sortArr = new Map([
[ 'a', '' ],
[ '1', '' ],
[ 'w', '' ],
]);
x.forEach(function(my_card) {
let temp = new Map();
for (const key of sortArr.keys()) {
if (my_card.dataValues.card.pinyinIndex == key) {
sortArr.set(my_card.dataValues.card.pinyinIndex, temp.set(JSON.stringify(Sequelize.getValues(my_card.dataValues))));
}
}}, this);
求高人帮忙解一下,万分感激。