我有閑置的資料結構:
products = [
{
name: 'Menu1',
subitems: [
{
name: 'Menu2'
},
]
},
{
name: 'Menu3',
subitems: [
{
name: 'Menu4',
subitems: [
{
name:'Menu5'
},
{
name:'Menu6'
}
]
},
]
},
]
想要獲取里面所有的名字值,不管嵌套多深。我已經嘗試過與 flat、reduce、concat、map、for of 等相關的解決方案,但我從來沒有得到最深層次的“Menu5”和“Menu6”
我認為這是大聲說遞回,但我無法實作它
uj5u.com熱心網友回復:
使用Array#reduce:
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://www.uj5u.com/qiye/497045.html
標籤:javascript 级联 减少 平面图 平坦的
