js запись в глубь массива
Есть плоский массив
[{id: 111, name: 'text'}, {id: 112, name: 'text'},
{id: 113, name: 'text'}, {id: 114, name: 'text'},]
Нужно записать элементы в глубь, что бы получилось
[
id: 111
name: 'text',
chilren: [
id: 112
name: 'text',
children: [
id: 113
name: 'text',
children: [
id: 114
name: 'text',
children: []
]
]
]
]
Пробовал так
let arr = []
for (let index in parentPath) {
arr.children = parentPath[index]
}
console.log('ARR', arr)
Но, походу, без рекурсии не обойтись?
upd:
let data=[{id: 111, name: 'text'}, {id: 112, name: 'text'},
{id: 113, name: 'text'}, {id: 114, name: 'text'},]
let res=data.reduceRight((r,n,i)=>({id:i+1,name:n,children:r?[r]:[]}),0);
console.log(res);
Ответы (1 шт):
Автор решения: DiD
→ Ссылка
let data = [ { id: 111, name: 'lvl0' },
{ id: 112, name: 'lvl1' },
{ id: 113, name: 'lvl2' },
{ id: 114, name: 'lvl3' },];
let res = data.reduceRight((r,o)=>((o.children=r?[r]:[]),o),0);
console.log(res);