Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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中搜索嵌套Json中的值_Javascript_Json_Angular - Fatal编程技术网

如何在JavaScript中搜索嵌套Json中的值

如何在JavaScript中搜索嵌套Json中的值,javascript,json,angular,Javascript,Json,Angular,我需要什么 我需要在children对象中搜索id列为的parent_id Json对象 { "key":"1", "value":{ "id":"150",

我需要什么

  • 我需要在children对象中搜索id列为的parent_id
Json对象

                    {
                       "key":"1",
                       "value":{
                          "id":"150",
                          "code":"p",
                          "name":"Parent / Node",
                          "parent_id":null,
                          "url":"parent-url",
                          "children":[
                             {
                                "id":"151",
                                "code":"A",
                                "name":"A",
                                "parent_id":"150",
                                "url":"a-test"
                             },
                             {
                                "id":"152",
                                "code":"B",
                                "name":"B",
                                "parent_id":"150",
                                "url":"b-test"
                             },
                             {
                                "id":"153",
                                "code":"Comm",
                                "name":"Comm",
                                "parent_id":"150",
                                "url":"c-test",
                                "children":[
                                   {
                                      "id":"154",
                                      "code":"c_code",
                                      "name":"comm Code",
                                      "parent_id":"153",
                                      "url":"comm-codes"
                                   },
                                   {
                                      "id":"155",
                                      "code":"forms_c",
                                      "name":"Forms Code",
                                      "parent_id":"153",
                                      "url":"form-cod",
                                      "children":[
                                         {
                                            "id":"156",
                                            "code":"test UME",
                                            "name":"Test  Menu",
                                            "parent_id":"155",
                                            "url":"test-menu"
                                         }
                                      ]
                                   }
                                ]
                             }
                          ]
                       }
                    }
Js代码

        console.log(searchNode('153',this.childernNodes));

   
            function searchNode(id, currentNode) {
            var i,
                currentChild,
                result;
            //console.log(currentNode);
            // if (id == currentNode.parent_id) {
            //     return currentNode;
            // } else {

               
                for (i = 0; i < currentNode.length; i ++) {
                 
                    currentChild = currentNode[i].node;
           
                    result = searchNode(id, currentChild);
                     
                  
                     return result;
                  
                }

             
        }
用例

输出应该是

  • 堆栈闪电战

您给定的函数是针对DOM的,因为它使用的是DOM api(.node)。 在这里,它并不完美,但它为您提供了如何做到这一点的工作示例:

var数据={
“密钥”:“1”,
“价值”:{
“id”:“150”,
“代码”:“p”,
“名称”:“父/节点”,
“父项id”:空,
“url”:“父url”,
“儿童”:[
{
“id”:“151”,
“代码”:“A”,
“姓名”:“A”,
“家长id”:“150”,
“url”:“a-test”
},
{
“id”:“152”,
“代码”:“B”,
“名称”:“B”,
“家长id”:“150”,
“url”:“b测试”
},
{
“id”:“153”,
“代码”:“通信”,
“名称”:“通信”,
“家长id”:“150”,
“url”:“c-test”,
“儿童”:[
{
“id”:“154”,
“代码”:“c_代码”,
“名称”:“通信代码”,
“家长id”:“153”,
“url”:“通信代码”
},
{
“id”:“155”,
“代码”:“表格”,
“名称”:“表格代码”,
“家长id”:“153”,
“url”:“表格cod”,
“儿童”:[
{
“id”:“156”,
“代码”:“测试UME”,
“名称”:“测试菜单”,
“家长id”:“155”,
“url”:“测试菜单”
}
]
}
]
}
]
}
};
日志(searchNode('153',数据));
函数searchNode(id,currentNode){
var结果;
for(Object.entries(currentNode))的常量[key,value]{
if(key==“parent_id”&&value==id)返回currentNode;
如果(值!==null&&typeof值===“对象”| | typeof值===“数组”){
结果=搜索节点(id、值);
如果(结果){
返回结果;
}
}
}

}
您给定的函数是针对DOM的,因为它使用的是DOM api(.node)。 在这里,它并不完美,但它为您提供了如何做到这一点的工作示例:

var数据={
“密钥”:“1”,
“价值”:{
“id”:“150”,
“代码”:“p”,
“名称”:“父/节点”,
“父项id”:空,
“url”:“父url”,
“儿童”:[
{
“id”:“151”,
“代码”:“A”,
“姓名”:“A”,
“家长id”:“150”,
“url”:“a-test”
},
{
“id”:“152”,
“代码”:“B”,
“名称”:“B”,
“家长id”:“150”,
“url”:“b测试”
},
{
“id”:“153”,
“代码”:“通信”,
“名称”:“通信”,
“家长id”:“150”,
“url”:“c-test”,
“儿童”:[
{
“id”:“154”,
“代码”:“c_代码”,
“名称”:“通信代码”,
“家长id”:“153”,
“url”:“通信代码”
},
{
“id”:“155”,
“代码”:“表格”,
“名称”:“表格代码”,
“家长id”:“153”,
“url”:“表格cod”,
“儿童”:[
{
“id”:“156”,
“代码”:“测试UME”,
this.childernNodes object json. 
* Case 1 when user  click on menu option i have id and parent_id of clicked  item.

* Suppose  153 selected item then i need recreate json according to clicked menu options  
* Parent / Node >Comm>Comm Code