【发布时间】:2019-10-26 09:24:29
【问题描述】:
我有一个对象数组
const mainArray = [{
name: 'main name',
id: 'main id',
parent: [{
name: 'parent name',
id: '1'
}],
child: [{
name: 'child name',
id: 'child id'
}]
}, {
name: 'main name 2',
id: 'main id 2',
parent: [{
name: 'parent name',
id: '1'
}],
child: [{
name: 'child name 2',
id: 'child id 2'
}]
},
{
name: 'main name 3',
id: 'main id 3',
parent: [{
name: 'parent name something else',
id: '2'
}],
child: [{
name: 'child name 3',
id: 'child id 3'
}]
}
]
我需要把它带到这个表格
const resultArray = [{
key: 'main',
title: 'main name',
}, {
key: 'parent',
title: 'parent name'
}, {
key: 'child',
title: 'child name'
}]
到目前为止,我得到了这个
if (mainArray) {
mainArray.map((main) => {
if (main.child && main.child.length) {
if (main.parent && main.parent.length) {
main.parent.map((item) => {
data.push({
key: 'parent',
title: item.name
});
});
}
data.push({
key: 'main',
title: main.name
});
main.child.map((item) => {
data.push({
key: 'child',
title: item.name
});
});
}
});
}
然后我用这个data array 来显示一个表格,它看起来像这样
我的问题是 - 两个mains 可以不同但具有相同的parent(父母有相同的ids)然后我不需要将父母两次添加到数组中,我需要它像这样显示
所以我正在寻找一种方法来判断两个 parents 对象是否具有相同的 id 以将它们合并在一起,以便在最终数组中只有一个 parent 和 main 和 @该父母的 987654337@ 被困在一个 parent 而不是两个相同的
这里是 link 到 jsfiddle
我可以使用 lodash
【问题讨论】:
-
请从给定的数据中添加您想要的结果。
-
这不是地图操作。您不会从内部函数返回任何内容,并且忽略结果。所以我认为使用地图功能没有意义。使用 forEach。它更适合您的其余代码。
标签: javascript lodash