从大量对象中创建新对象

问题描述 投票:-2回答:2

我从服务器中检索了一个巨大的数组(包含2000多个对象)。该数组的结构如下:

const arr = [
{code: 'A', text:'blabla', codeParent:'-'},
{code: 'B', text:'blabla', codeParent:'-'},
{code: 'C', text:'blabla', codeParent:'-'},
{code: 'D', text:'blabla', codeParent:'-'},
{code: '01', text:'blabla', codeParent:'B'},
{code: '02', text:'blabla', codeParent:'C'},
{code: '03', text:'blabla', codeParent:'D'},
{code: '04', text:'blabla', codeParent:'A'},
{code: '05', text:'blabla', codeParent:'A'},
{code: '06', text:'blabla', codeParent:'B'},
...
]

我要制作的对象看起来像这样:

const obj = {
A: [array of all object with codeParent 'A'],
B: [array of all object with codeParent 'B'],
C: [array of all object with codeParent 'C'],
D: [array of all object with codeParent 'D']
}

有人知道获得此结果的最佳方法吗?

javascript ecmascript-6
2个回答
0
投票

使用array.reduce。在回调内部,检查累加器对象的键是否与codeParent相同。如果不是,则创建一个带有空[]作为值的键,然后将当前对象推入其中。


0
投票

假设您的输出中有几处在您的解释中并不清楚,但在示例输出中似乎是这种情况:

© www.soinside.com 2019 - 2024. All rights reserved.