Подскажите пожалуйста как на javascript реализовать дерево ссылок. Например есть такой массив
var array = [
{id: 1, parent: 0},
{id: 2, parent: 1},
{id: 3, parent: 2},
{id: 4, parent: 1},
{id: 5, parent: 3},
{id: 6, parent: 4}
]
Как построить меню типа:
{
id: 1,
parent: 0,
children: [
{
id: 2,
parent: 1,
children: [
{
id: 3,
parent: 2,
children: [.....]
}
]
}
]
}
var array = [
{id: 1, parent: 0},
{id: 2, parent: 1},
{id: 3, parent: 2},
{id: 4, parent: 1},
{id: 5, parent: 3},
{id: 6, parent: 4}
]
function makeTree(input) {
var root = null;
var byId = {};
var i;
for (i = 0; i < input.length; i++) {
if (input[i].parent == 0)
root = input[i];
byId[input[i].id] = input[i];
input[i].children = [];
}
for (i = 0; i < input.length; i++) {
if (byId[input[i].parent])
byId[input[i].parent].children.push(input[i]);
}
return root;
}
console.log(makeTree(array));
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости