相关疑难解决方法(0)

Javascript:构建分层树

我的数据有以下属性:

  1. 每个条目都有唯一的ID(Id)
  2. 每个都有一个Parent字段,它指向父节点的Id.
  3. 节点可以有多个子节点,但只有一个父节点.

我第一次尝试建造一棵树就在下面.它是错误的,因为递归导致无限循环.即使我解决了,我也不确定是否有更好的方法来做到这一点.目前,我正在进行2次传球.

我希望它尽可能高效,因为我有相当数量的数据.它还需要动态重建树(根可以是任何节点)

以下程序中有样本数据:

 arry = [{"Id":"1", "Name":"abc", "Parent":""}, {"Id":"2", "Name":"abc", "Parent":"1"},
    {"Id":"3", "Name":"abc", "Parent":"2"},{"Id":"4", "Name":"abc", "Parent":"2"}]//for testing
Run Code Online (Sandbox Code Playgroud)

我希望输出是(它可能是错误的嵌套结构,因为我手动编写它.但是,我希望是一个有效的JSON结构,节点作为字段'值',子节点作为数组.)

{
 "value": {"Id":"1", "Name":"abc", "Parent":""},
 "children": [
  {
   "value": {"Id":"2", "Name":"abc", "Parent":"1"},
   "children": [
    {
     "value": {"Id":"3", "Name":"abc", "Parent":"2"},
     "children": []
     },
     {
     "value": {"Id":"4", "Name":"abc", "Parent":"2"},
     "children": []
     }
   ]
..
}
Run Code Online (Sandbox Code Playgroud)

示例程序:

function convertToHierarchy(arry, root) 
{
//root can be treated a special case, as the id is known
    arry = [{"Id":"1", "Name":"abc", "Parent":""}, {"Id":"2", "Name":"abc", "Parent":"1"}, …
Run Code Online (Sandbox Code Playgroud)

javascript

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

javascript ×1