Получить уровень иерархии
У меня есть массив объектов, где каждый объект имеетid
иParentId
собственности (чтобы они могли быть расположены в деревьях). Они не в определенном порядке.
Обратите внимание, чтоid
с и 'parentId
s не будут целыми числами, они будут строками (просто хотелось, чтобы образец кода был чище ..)
Существует только один корень: скажем, егоid
: 1 Данные выглядят так:
data = [
{
id:"id-2",
parentId:"id-3"
},
{
id:"id-4",
parentId:"2"
},
{
id:"id-3",
parentId:"id-4"
},
{
id:"id-5",
parentId:"id-4"
},
{
id:"id-6",
parentId:"id-1"
},
{
id:"id-7",
parentId:"id-1"
}
// and so on...
]
Я ищу эффективный способ дать каждому объектуlevel
свойство, которое должно указывать вложенный уровень это ...
Затем они должны выглядеть так:
data = [
{
id:"id-2",
parentId:"id-1",
level:2
},
{
id:"id-3",
parentId:"id-4",
level:5
},
{
id:"id-4",
parentId:"id-2",
level:3
},
{
id:"id-5",
parentId:"id-4",
level:5
},
{
id:"id-6",
parentId:"id-1",
level:2
},
{
id:"id-7",
parentId:"id-3",
level:4
}
// and so on...
]
Короче:Я хочу чтобыlevel
быть добавленным динамически через цикл через массив и выяснение иерархии ..
Кроме того, (если возможно) они должны быть отсортированы в соответствии с их порядком, как, например, все объектыlevel:3
s от одного и того же родителя должны быть рядом друг с другом, не то чтобы рядом должны быть братья и сестры одного и того же родителя, а не два кузена уровня 3 рядом друг с другом.