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));
添加回答
舉報