我有一个包含另一个对象数组的对象数组,嵌套层级为四级。 该数组结构如下:
[
{
title: 'Title',
type: 'section',
links: [
{
label: 'Label',
id: 'id_1',
links: [
{
title: 'Title',
type: 'section',
links: [
{
label: 'Label',
id: 'id_2',
links: [
{
label: 'Label',
id: 'id_3',
links: [],
}
]
}
]
},
{
title: 'Other title',
type: 'section',
links: [
{
label: 'Label',
id: 'id_4',
links: [],
}
]
}
]
}
]
}
]
我希望能够获得一个扁平化的数组,其中包含包含链接的链接数组的ID(它们是子菜单的父级)。因此,期望的结果如下所示:["id_1", "id_2"]
我尝试使用从MDN获取的以下函数来获得结果:
flatDeep(arr, d = 1) {
return d > 0
? arr.reduce((acc, val) =>
acc.concat(Array.isArray(val.links)
? this.flatDeep(val.links, d - 1)
: val.links), [])
: arr.slice();
}
这让我得到了一个空数组。
["id_1", "id_2"]
的数组吗? - palaѕн