我有一个融合数据结构:
products = [
{
name: 'Menu1',
subitems: [
{
name: 'Menu2'
},
]
},
{
name: 'Menu3',
subitems: [
{
name: 'Menu4',
subitems: [
{
name:'Menu5'
},
{
name:'Menu6'
}
]
},
]
},
]想要获取其中的所有名称值,不管嵌套的深度有多深。我尝试过与平面、缩减、连接、地图、of等相关的解决方案,但我从未得到最深层次的“Menu5”和“Menu6”。
我想这是在大声说递归,但我无法实现它
发布于 2022-06-28 18:52:07
const _getNames = (products = []) =>
products.reduce((names, { name, subitems = [] }) => {
names.push(name);
if(subitems.length > 0) {
names.push(..._getNames(subitems));
}
return names;
}, []);
const products = [
{
name: 'Menu1',
subitems: [
{ name: 'Menu2' }
]
},
{
name: 'Menu3',
subitems: [
{ name: 'Menu4',
subitems: [
{ name:'Menu5' }, { name:'Menu6' }
]
}
]
}
];
console.log( _getNames(products) );
https://stackoverflow.com/questions/72791616
复制相似问题