Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript对象数组中循环,将对象指定为其中其他对象的子对象?树/层次结构_Javascript_Arrays_Loops_Tree - Fatal编程技术网

如何在Javascript对象数组中循环,将对象指定为其中其他对象的子对象?树/层次结构

如何在Javascript对象数组中循环,将对象指定为其中其他对象的子对象?树/层次结构,javascript,arrays,loops,tree,Javascript,Arrays,Loops,Tree,我需要通过以下对象数组进行循环的帮助,以便将所有内容重新组织到层次结构/树中。我如何做到这一点?感谢您的帮助。 [ { "id":1, "parentId":null, "value":"Root Parent 01", "children":[] }, { "id":8, "parentId":null, "value":"Root Parent 02", "child

我需要通过以下对象数组进行循环的帮助,以便将所有内容重新组织到层次结构/树中。我如何做到这一点?感谢您的帮助。

[  
   {  
      "id":1,
      "parentId":null,
      "value":"Root Parent 01",
      "children":[]
   },
   {  
      "id":8,
      "parentId":null,
      "value":"Root Parent 02",
      "children":[]
   },
   {  
      "id":36,
      "parentId":15,
      "value":"Child 01",
      "children":[]
   },
   {  
      "id":43,
      "parentId":15,
      "value":"Child 02",
      "children":[]

   },
   {  
      "id":50,
      "parentId":15,
      "value":"Child 03",
      "children":[]

   },
   {  
      "id":15,
      "parentId":null,
      "value":"Root Parent 03",
      "children":[]
   },
   {  
      "id":57,
      "parentId":22,
      "value":"Child 04",
      "children":[]

   },
   {  
      "id":64,
      "parentId":22,
      "value":"Child 05",
      "children":[]

   },
   {  
      "id":71,
      "parentId":22,
      "value":"Child 06",
      "children":[]

   },
   {  
      "id":78,
      "parentId":22,
      "value":"Child 07",
      "children":[]

   },
   {  
      "id":85,
      "parentId":22,
      "value":"Child 08",
      "children":[]

   },
   {  
      "id":92,
      "parentId":22,
      "value":"Child 09",
      "children":[]
   },
   {  
      "id":99,
      "parentId":22,
      "value":"Child 10",
      "children":[]

   },
   {  
      "id":106,
      "parentId":22,
      "value":"Child 11",
      "children":[]

   },
   {  
      "id":22,
      "parentId":null,
      "value":"Root Parent 04",
      "children":[]
   },
   {  
      "id":113,
      "parentId":29,
      "value":"Child 12",
      "children":[]

   },
   {  
      "id":115,
      "parentId":29,
      "value":"Child 13",
      "children":[]

   },
   {  
      "id":122,
      "parentId":29,
      "value":"Child 14",
      "children":[]

   },
   {  
      "id":129,
      "parentId":29,
      "value":"Child 15",
      "children":[]

   },
   {  
      "id":136,
      "parentId":29,
      "value":"Child 16",
      "children":[]

   },
   {  
      "id":143,
      "parentId":29,
      "value":"Child 17",
      "children":[]

   },
   {  
      "id":157,
      "parentId":150,
      "value":"Child 18",
      "children":[]

   },
   {  
      "id":150,
      "parentId":29,
      "value":"Child 19",
      "children":[]

   },
   {  
      "id":29,
      "parentId":null,
      "value":"Root Parent 05",
      "children":[]
   }
]
所需对象数组:

[
    {  
        "id":1,
        "parentId":null,
        "value":"Root Parent 01",
        "children":[]
    },
    {  
        "id":8,
        "parentId":null,
        "value":"Root Parent 02",
        "children":[]
    },
    {  
        "id":15,
        "parentId":null,
        "value":"Root Parent 03",
        "children":[
            {  
                "id":36,
                "parentId":15,
                "value":"Child 01",
                "children":[]
            },
            {
                "id":43,
                "parentId":15,
                "value":"Child 02",
                "children":[]
            },
            {
                "id":50,
                "parentId":15,
                "value":"Child 03",
                "children":[]
            }
        ]
    },
    {  
        "id":22,
        "parentId":null,
        "value":"Root Parent 04",
        "children":[
            {
                "id":57,
                "parentId":22,
                "value":"Child 04",
                "children":[]
            },
            {
                "id":64,
                "parentId":22,
                "value":"Child 05",
                "children":[]
            },
            {
                "id":71,
                "parentId":22,
                "value":"Child 06",
                "children":[]
            },
            {
                "id":78,
                "parentId":22,
                "value":"Child 07",
                "children":[]
            },
            {
                "id":85,
                "parentId":22,
                "value":"Child 08",
                "children":[]
            },
            {
                "id":92,
                "parentId":22,
                "value":"Child 09",
                "children":[]
            },
            {
                "id":99,
                "parentId":22,
                "value":"Child 10",
                "children":[]
            },
            {
                "id":106,
                "parentId":22,
                "value":"Child 11",
                "children":[]
            }
        ]
    },
    {  
        "id":29,
        "parentId":null,
        "value":"Root Parent 05",
        "children":[
            {
                "id":113,
                "parentId":29,
                "value":"Child 12",
                "children":[]
            },
            {
                "id":115,
                "parentId":29,
                "value":"Child 13",
                "children":[]
            },
            {
                "id":122,
                "parentId":29,
                "value":"Child 14",
                "children":[]
            },
            {
                "id":129,
                "parentId":29,
                "value":"Child 15",
                "children":[]
            },
            {
                "id":136,
                "parentId":29,
                "value":"Child 16",
                "children":[]
            },
            {
                "id":143,
                "parentId":29,
                "value":"Child 17",
                "children":[]
            },
            {
                "id":150,
                "parentId":29,
                "value":"Child 19",
                "children":[
                    {
                        "id":157,
                        "parentId":150,
                        "value":"Child 18",
                        "children":[]
                    }
                ]
            }
        ]
    }
]
所需的树:

[
    {  
        "id":1,
        "parentId":null,
        "value":"Root Parent 01",
        "children":[]
    },
    {  
        "id":8,
        "parentId":null,
        "value":"Root Parent 02",
        "children":[]
    },
    {  
        "id":15,
        "parentId":null,
        "value":"Root Parent 03",
        "children":[
            {  
                "id":36,
                "parentId":15,
                "value":"Child 01",
                "children":[]
            },
            {
                "id":43,
                "parentId":15,
                "value":"Child 02",
                "children":[]
            },
            {
                "id":50,
                "parentId":15,
                "value":"Child 03",
                "children":[]
            }
        ]
    },
    {  
        "id":22,
        "parentId":null,
        "value":"Root Parent 04",
        "children":[
            {
                "id":57,
                "parentId":22,
                "value":"Child 04",
                "children":[]
            },
            {
                "id":64,
                "parentId":22,
                "value":"Child 05",
                "children":[]
            },
            {
                "id":71,
                "parentId":22,
                "value":"Child 06",
                "children":[]
            },
            {
                "id":78,
                "parentId":22,
                "value":"Child 07",
                "children":[]
            },
            {
                "id":85,
                "parentId":22,
                "value":"Child 08",
                "children":[]
            },
            {
                "id":92,
                "parentId":22,
                "value":"Child 09",
                "children":[]
            },
            {
                "id":99,
                "parentId":22,
                "value":"Child 10",
                "children":[]
            },
            {
                "id":106,
                "parentId":22,
                "value":"Child 11",
                "children":[]
            }
        ]
    },
    {  
        "id":29,
        "parentId":null,
        "value":"Root Parent 05",
        "children":[
            {
                "id":113,
                "parentId":29,
                "value":"Child 12",
                "children":[]
            },
            {
                "id":115,
                "parentId":29,
                "value":"Child 13",
                "children":[]
            },
            {
                "id":122,
                "parentId":29,
                "value":"Child 14",
                "children":[]
            },
            {
                "id":129,
                "parentId":29,
                "value":"Child 15",
                "children":[]
            },
            {
                "id":136,
                "parentId":29,
                "value":"Child 16",
                "children":[]
            },
            {
                "id":143,
                "parentId":29,
                "value":"Child 17",
                "children":[]
            },
            {
                "id":150,
                "parentId":29,
                "value":"Child 19",
                "children":[
                    {
                        "id":157,
                        "parentId":150,
                        "value":"Child 18",
                        "children":[]
                    }
                ]
            }
        ]
    }
]
根父级01
根父级02
根父级03
---儿童01
---儿童02
---儿童03
根父级04
---儿童04
---儿童05
---儿童06
---儿童07
---儿童08
---儿童09
---儿童10
---儿童11
根父级05
---儿童12
---儿童13
---儿童14
---儿童15
---儿童16
---儿童17
---儿童19

------孩子18

而我是一个尝试尝试自己尝试的超级粉丝。我一直想知道如何做到这一点,并认为这将是一个很好的机会,我也

首先,我对输入列表进行排序,查找确定为子元素而不是父元素的项

然后在第二个循环中,我们寻找子对象所属的父对象,并将它们匹配起来。您可能需要根据您的数据改进此过程。您可能还需要多次循环,但这应该足以使您产生凹痕

var输入阵列=[{
“id”:1,
“parentId”:空,
“值”:“根父级01”,
“儿童”:[]
},
{
“id”:8,
“parentId”:空,
“值”:“根父级02”,
“儿童”:[]
},
{
“id”:36,
“家长ID”:15,
“值”:“子项01”,
“儿童”:[]
},
{
“id”:43,
“家长ID”:15,
“值”:“子项02”,
“儿童”:[]
},
{
“id”:50,
“家长ID”:15,
“值”:“子项03”,
“儿童”:[]
},
{
“id”:15,
“parentId”:空,
“值”:“根父级03”,
“儿童”:[]
},
{
“id”:57,
“家长ID”:22,
“值”:“子项04”,
“儿童”:[]
},
{
“id”:64,
“家长ID”:22,
“值”:“子05”,
“儿童”:[]
},
{
“id”:71,
“家长ID”:22,
“值”:“子项06”,
“儿童”:[]
},
{
“id”:78,
“家长ID”:22,
“值”:“子项07”,
“儿童”:[]
},
{
“id”:85,
“家长ID”:22,
“值”:“子项08”,
“儿童”:[]
},
{
“id”:92,
“家长ID”:22,
“值”:“子项09”,
“儿童”:[]
},
{
“id”:99,
“家长ID”:22,
“值”:“子10”,
“儿童”:[]
},
{
“id”:106,
“家长ID”:22,
“值”:“子11”,
“儿童”:[]
},
{
“id”:22,
“parentId”:空,
“值”:“根父级04”,
“儿童”:[]
},
{
“id”:113,
“家长ID”:29,
“值”:“子12”,
“儿童”:[]
},
{
“id”:115,
“家长ID”:29,
“值”:“子13”,
“儿童”:[]
},
{
“id”:122,
“家长ID”:29,
“值”:“子14”,
“儿童”:[]
},
{
“id”:129,
“家长ID”:29,
“值”:“子15”,
“儿童”:[]
},
{
“id”:136,
“家长ID”:29,
“值”:“子16”,
“儿童”:[]
},
{
“id”:143,
“家长ID”:29,
“值”:“子项17”,
“儿童”:[]
},
{
“id”:157,
“家长ID”:150,
“值”:“子18”,
“儿童”:[]
},
{
“id”:150,
“家长ID”:29,
“值”:“子项19”,
“儿童”:[]
},
{
“id”:29,
“parentId”:空,
“值”:“根父级05”,
“儿童”:[]
}
]
函数数据汇总(输入){
var hasParent=[];
变量输出=[]
对于(输入的第一部分){
if(i.parentId){
hasParent.push(i);
}否则{
输出推力(i);
}
}
(我的父母){
var parent=output.find(record=>record.id==i.parentId)
如果(家长){
父母。孩子。推(i);
}
}
控制台日志(输出);
返回输出;
}

DataRollUp(inputArray)
首先在code@Andrew这篇文章够长的了。我只是想寻求一些建议,而不是批评。这里可以找到一个可行的解决方案/例子:不是批评。检查每个问题,以便有一个没有代码的解决方案请求。这是本网站政策的一部分。这里的每个人都非常乐意给你一个解决方案,但我们想尝试一下。“即使很糟糕,”安德鲁,“你也不明白我说的。我用C写的。我也用Javascript写了这篇文章,虽然还不起作用。我的观点是,这篇文章已经太长了。