2 回答

TA贡献1890条经验 获得超9个赞
您必须独立于循环管理子级的索引。那这个呢?
let i = 0;
return parentArr.map((parent) => {
return {
name: parent.name,
additionalData: parent.childArray.map((child) => ({
name: child.name
index: i++
})),
};
});

TA贡献1797条经验 获得超6个赞
索引计数应位于地图外部,因为这将在每次迭代时重置它。
您可以将此行为抽象为可重用的方法,如下所示。
const parentArr = [
{
name: 'first parent array',
childArray: [
{
name: '1 / first child'
},
{
name: '1 / second child'
}
]
},
{
name: 'second parent array',
childArray: [
{
name: '2 / first child array'
},
{
name: '2 / second child array'
}
]
}
];
const transformArray = root => {
let i = 0;
return root.map(({ name, childArray }) => ({
name,
additionalData: childArray.map(({ name }) => ({
index: i++,
name
}))
}));
};
console.log(transformArray(parentArr));
添加回答
举报