私はブレインブレーカーに直面しています(少なくとも私にとっては):次のようなデータオブジェクトの1つの深さの配列を持つjsonファイルを取得します:
[
{"id":1, "name":"Sport", "parent_id":0, "children":[]},
{"id":2, "name":"Tennis", "parent_id":4, "children":[]},
{"id":3, "name":"Climbing", "parent_id":5, "children":[]},
{"id":4, "name":"Indoor", "parent_id":1, "children":[]},
{"id":5, "name":"Outdoor", "parent_id":1, "children":[]},
{"id":6, "name":"Bowling", "parent_id":4, "children":[]}
]
これを、子が親の子配列内に配置されるツリー構造に変換するにはどうすればよいですか? オブジェクトは常に正しい順序であるとは限りません。配列内で子が親の前に来ることがあります。(私の例では id 2 と 3 のように)
これが最終的に必要な方法です:
[
{"id":1, "name":"Sport", "parent_id":0, "children":
[
{"id":4, "name":"Indoor", "parent_id":1, "children":
[
{"id":2, "name":"Tennis", "parent_id":4, "children":[]},
{"id":6, "name":"Bowling", "parent_id":4, "children":[]},
]},
{"id":5, "name":"Outdoor", "parent_id":1, "children":
[
{"id":3, "name":"Climbing", "parent_id":5, "children":[]}
]},
]}
]
これを達成する方法はありますか?
要素を反復処理して、親の子配列内にプッシュしようとしましたが、親が移動すると、次の兄弟はもう親を見つけることができません...