Javascript 使用angular.forEach迭代JSON

Javascript 使用angular.forEach迭代JSON,javascript,json,angularjs,Javascript,Json,Angularjs,我有一个包含所有父节点和子节点的JSON字符串。我需要在导航栏中将父节点及其对应的子节点呈现为列表 这是我的json: [ {node_ID='2', name='Child3', parent='3', role ='leafNode'}, {node_ID='4', name='Child4', parent='3', role ='leafNode'}, {node_ID='3', name='Child2', parent='1', role

我有一个包含所有父节点和子节点的JSON字符串。我需要在导航栏中将父节点及其对应的子节点呈现为列表

这是我的json:

    [
      {node_ID='2', name='Child3', parent='3', role ='leafNode'},
      {node_ID='4', name='Child4', parent='3', role ='leafNode'},
      {node_ID='3', name='Child2', parent='1', role ='Node'},
      {node_ID='1', name='Node1', parent='0', role ='rootNode'},
…]

迭代后,我的列表应显示为:

          > Node1
            >Child2
              >Child3
              >Child4

是否有人可以使用angular.forEach函数来遍历JSIN数组,并根据节点ID和父ID对节点进行排序???

这将把数据映射到适合传递给递归树指令的嵌套数组中。在网络搜索中找到其中一个应该不难…有很多很多的例子和模块

var tmp ={}, res=[];

data.forEach(function(item){
   item.children =[];
   tmp[item.node_ID]=item;
});

data.forEach(function(item){
  if(+item.parent !==0){
    tmp[item.parent].children.push(item);
  }else{
    res.push(item);
  }
});

delete tmp;


$scope.tree = res;

您是否控制从后端发送的数据?发送平面数组远不如在每个级别发送具有相同属性键的嵌套数组干净。请同时显示解决此问题的尝试是,尝试控制来自后端的数据。尝试使用for.Each函数,但它没有按照父子关系呈现。@Sree您也可以在JavaScript中对数组执行父子关系。如果无法从后端获取解决方案。它应该像{node_ID='1',name='Node1',role='rootNode',child=[{node_ID='3',name='Child2',role='node',child=[{node_ID='2',name='Child3',role='leafNode',child=[]},{node_ID='4',name='Child4',role='leafNode',child=[]}},让我们看看你尝试了什么,即使它不起作用。这就是这个网站的全部想法……你展示了给你带来问题的代码,人们试图帮助你解决问题。在没有看到一些努力的情况下,你似乎在要求别人为你做所有的工作。它可能是你需要的简单的东西……在这种情况下,它意味着我们不必从零开始构建它,还建议你用谷歌
角度递归指令