私はオブジェクトの配列を持っています。各オブジェクトにはid
とParentId
プロパティがあります (ツリーに配置できます)。それらは特定の順序ではありません。
id
とparentId
は整数ではなく、文字列になることに注意してください(サンプル コードをよりクリーンにしたかっただけです..)
ルートは 1 つだけです: その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のいとこ2人。