Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 使用java脚本通过JSON对象与多个子对象循环_Javascript_Json_Nested_Nested Loops - Fatal编程技术网

Javascript 使用java脚本通过JSON对象与多个子对象循环

Javascript 使用java脚本通过JSON对象与多个子对象循环,javascript,json,nested,nested-loops,Javascript,Json,Nested,Nested Loops,我试图循环通过一个Json对象,它看起来像这样 [ { "yang_type": "container", "name": "c1", "value": "", "children": [ { "yang_type": "", "name": "type", "value": "Uint32", "

我试图循环通过一个Json对象,它看起来像这样

    [
      {
        "yang_type": "container",
        "name": "c1",
        "value": "",
        "children": [
          {
            "yang_type": "",
            "name": "type",
            "value": "Uint32",
            "children": []
          },
          {
            "yang_type": "list",
            "name": "DNS",
            "value": "",
            "children": [
              {
                "name": "type",
                "value": "String",
                "children": [],
                "yang_type": ""
              },
              {
                "yang_type": "leaf",
                "name": "ip-address",
                "value": "",
                "children": [
                  {
                    "name": "type",
                    "value": "string",
                    "children": [],
                    "yang_type": ""
                  }
                ]
              },
              {
                "yang_type": "leaf",
                "name": "Domain",
                "value": "",
                "children": [
                  {
                    "name": "type",
                    "value": "string",
                    "children": [],
                    "yang_type": ""
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
我正在尝试这个逻辑,但它并没有循环通过第一个孩子的孩子

while(m.children.length >= 1) {
    if(m.yang_type!='' && m.name!=''){
       {$log.error("parent:",m.yang_type,m.name);}
    }
    if(m.name!='' && m.value!=''){
       {$log.error("child:",m.name,m.value);}
    }
    m = m.children[m.children.length - 1];   
}

上面的代码并没有遍历所有的子项。我做错了什么?

您试图在阵列上循环。你的尝试不能这样做

您可以使用回调进行迭代,并将其用于对childrens的递归调用

函数循环(a){
console.log(a.name);//处理您的数据
Array.isArray(a.children)和&a.children.forEach(loop);//检查并迭代子级
}
var数据=[{“yang_类型”:“容器”、“名称”:“c1”、“值”:“子项”:[{“yang_类型”:“名称”:“类型”、“值”:“Uint32”、“子项”:[]},{“yang_类型”:“列表”、“名称”:“DNS”、“值”:“子项”:[{“名称”:“类型”、“值”:“字符串”、“子项”:[]、“yang_类型”:“},{“yang_类型”:“叶”、“名称”:“ip地址”、“值”:,“子项”:[{“名称”:“类型”,“值”:“字符串”,“子项”:[],“杨_类型”:“}],{“杨_类型”:“叶”,“名称”:“域”,“值”:“,“子项”:[{“名称”:“类型”,“值”:“字符串”,“子项”:[],“杨_类型”:“}]}];

data.forEach(循环);
请不要编辑您的问题以包含新问题。相反,请创建一个新问题。如果我这样做。请将其标记为重复:)无论如何,让我创建一个新问题