У меня есть следующий массив
const categories = [
{id:1,name:'Electronics',parent_id:0},
{id:2,name:'Food',parent_id:0},
{id:3,name:'Laptops',parent_id:1},
{id:4,name:'Torches',parent_id:1},
];
Так что в конце всего этого я ожидаю получить массив следующего характера
const final_array = [
{id:1, name:'Electronics', children: [
{id:3,name:'Laptops',parent_id:1},
{id:4,name:'Torches',parent_id:1},
]},
{id:2, name:'Food'}
]
То есть создать родительский дочерний массив
Итак, я написал следующее, что работает
getNestedChildren(arr, parent) {
var out = []
for(var i in arr) {
if(arr[i].parent_id === parent) {
var children = this.getNestedChildren(arr, arr[i].id)
if(children.length) {
arr[i].children = children
}
out.push(arr[i])
}
}
return out
},
Так что, вызывая this.getNestedChildren(categories,0)
, это работает
Я бы хотел еще больше оптимизировать эту функцию в es6. Как я могу go рассказать об оптимизации этой функции getNestedChildren
дальше?