我有一个对象数组,其中每个对象都有一个id
和一个ParentId
属性(因此它们可以排列在树中)。它们没有特定的顺序。
请注意id
's 和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
来自同一个父级的所有对象应该彼此相邻,而不是应该有同一个父级的兄弟姐妹彼此相邻而不是3级的两个表兄弟挨着。