Я получил эти вложенные массивы, и мне нужно перебрать их, чтобы создать вложенные контейнеры.lvl4
должно идти внутрь lvl3
, lvl3
до lvl2
и lvl2
внутри lvl1
.
const elements = [
{ name: 'a-lvl1', innerEl: [
{ name: 'a1-lvl2', innerEl: [
{ name: 'a1-lvl3' , innerEl: [
{ name: 'a-lvl4', innerEl: [] }
] },
{ name: 'a2-lvl3' , innerEl: [
{ name: 'a-lvl4', innerEl: [] }
] }
] },
{ name: 'a2-lvl2', innerEl: [
{ name: 'a-lvl3' , innerEl: [
{ name: 'a-lvl4', innerEl: [] }
] }
] },
{ name: 'a3-lvl2', innerEl: [
{ name: 'a-lvl3' , innerEl: [
{ name: 'a-lvl4', innerEl: [] }
] }
] },
] },
{ name: 'b-lvl1', innerEl: [ { }] },
{ name: 'c-lvl1', innerEl: [ { }] }
]
Это текущий скрипт, который работает, но я ищугораздо более простое решение.
let renderElements = null;
if( elements !== undefined || elements.length != 0 ) {
renderElements = elements.map( lvl1 => {
let lvl2Blocks = null;
if( lvl1.innerEl !== undefined || lvl1.innerEl.length != 0) {
lvl2Blocks = lvl1.innerEl.map( lvl2 => {
let lvl3Blocks = null;
if( lvl2.innerEl !== undefined || lvl2.innerEl.length != 0) {
lvl3Blocks = lvl2.innerEl.map( lvl3 => {
let lvl4Blocks = null;
lvl4Blocks = lvl3.innerEl.map( lvl4 => {
return (
<div name={lvl4.name} selected={null} >
{ lvl4.innerEl !== undefined && lvl4Blocks }
</div>
)
});
return (
<div name={lvl3.name} selected={null} >
{ lvl3.innerEl !== undefined && lvl4Blocks }
</div>
)
});
}
return (
<div name={lvl2.name} selected={null} >
{ lvl2.innerEl !== undefined && lvl3Blocks }
</div>
)
});
}
return (
<div name={lvl1.name} selected={null} >
{ lvl1.innerEl !== undefined && lvl2Blocks }
</div>
)
});
}
Есть идеи?Благодарю.