将json对象分离到不同的索引中



我有以下由json对象组成的数组:

items = [
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-10',
creditAmount: '200',
numberBank: '12345',
},
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-14',
creditAmount: '159',
numberBank: '12345',
},
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-15',
creditAmount: '3421',
numberBank: '12345',
},
{
id: '2',
name: 'George',
transactionDate: '2012-09-15',
creditAmount: '6000',
numberBank: '13345',
},
{
id: '2',
name: 'George',
transactionDate: '2012-09-16',
creditAmount: '6565',
numberBank: '13345',
}
]

我想为每个相同的id分离数组索引

例如:

[
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-10',
creditAmount: '200',
numberBank: '12345',
},
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-14',
creditAmount: '159',
numberBank: '12345',
},
{
id: '1',
name: 'Josh',
transactionDate: '2012-08-15',
creditAmount: '3421',
numberBank: '12345',
}
],
[
{
id: '2',
name: 'George',
transactionDate: '2012-09-15',
creditAmount: '6000',
numberBank: '13345',
},
{
id: '2',
name: 'George',
transactionDate: '2012-09-16',
creditAmount: '6565',
numberBank: '13345',
}
]

如何做到这一点?感谢

您可以使用reduceid分组,然后使用Object.values的结果值
EDIT
??=是逻辑零赋值。只要左手边是nullundefined,就会指定右手边。

let items = [         {           id: '1',           name: 'Josh',           transactionDate: '2012-08-10',           creditAmount: '200',           numberBank: '12345',         },         {           id: '1',           name: 'Josh',           transactionDate: '2012-08-14',           creditAmount: '159',           numberBank: '12345',         },         {           id: '1',           name: 'Josh',           transactionDate: '2012-08-15',           creditAmount: '3421',           numberBank: '12345',         },         {           id: '2',           name: 'George',           transactionDate: '2012-09-15',           creditAmount: '6000',           numberBank: '13345',         },         {           id: '2',           name: 'George',           transactionDate: '2012-09-16',           creditAmount: '6565',           numberBank: '13345',         }        ]

const res = Object.values(items.reduce((acc,curr)=> {
acc[curr.id]??=[]  //similar to acc[curr.id] = acc[curr.id] || [] in this case
acc[curr.id].push(curr)
return acc
},{}))
console.log(res)

最新更新