【发布时间】:2013-10-07 10:11:56
【问题描述】:
我正面临着一个脑筋急转弯(至少对我来说): 我得到一个 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":[]}
]},
]}
]
知道如何实现吗?
我尝试遍历元素并将其父子数组内部推入,但是当父元素被移动时,下一个兄弟元素再也找不到父元素了...
【问题讨论】:
标签: javascript jquery arrays json