我有一个如下所示的对象数组 [{投资组合:“AMBAL”, 1级, 直接父级:""}, {投资组合:“AMBAL-PI”, 等级:2, 直接父级:"AMBAL"}, {投资组合:“AMBAL-FI”, 等级:2, 直接父级:“AMBAL”},
{投资组合:“2213AMBAL”, 等级:3, 直接父级:"AMBAL-FI"}, {投资组合:“2132AMBAL”, 等级:3, 直接父级:“AMBAL-PI”}....]
我刚刚给出了第 3 级的示例,但它可能还有更多......
预期o/p
[{投资组合:“AMBAL”, 1级, 直接父级:""},
{投资组合:“AMBAL-FI”, 等级:2, 直接父级:“AMBAL”},
{投资组合:“2213AMBAL”, 等级:3, 直接父级:“AMBAL-FI”},
{投资组合:“AMBAL-PI”, 等级:2, 直接父级:“AMBAL”},
{投资组合:“2132AMBAL”, 等级:3, 直接父级:“AMBAL-PI”}
] 仅使用 javascript 返回上述对象数组
您可以收集每个级别并获得平面阵列。
const
data = [{ Portfolio: "AMBAL", Level: 1, "Immediate Parent": "" }, { Portfolio: "AMBAL-PI", Level: 2, "Immediate Parent": "AMBAL" }, { Portfolio: "AMBAL-FI", Level: 2, "Immediate Parent": "AMBAL" }, { Portfolio: "2213AMBAL", Level: 3, "Immediate Parent": "AMBAL-FI" }, { Portfolio: "2132AMBAL", Level: 3, "Immediate Parent": "AMBAL-PI" }],
result = data
.reduce((r, o) => {
r[o["Immediate Parent"]].push([o, r[o.Portfolio] = []]);
return r;
}, { '': [] })
['']
.flat(Infinity);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }