在JSON树中按ID查找节点

yak_ilnur

我想将children数组添加到节点所在的位置id = 52126f7d(或其他位置)。我该怎么做?

var children = [
  { name: 'great-granchild3',
    id: '2a12a10h'
  },
  { name: 'great-granchild4',
    id: 'bpme7qw0'
  }
]

// json tree
var objects = {
  name: 'all objects',
  id:"2e6ca1c3",      
  children: [
     {
         name: 'child',
         id: "6c03cfbe",
         children: [                 
             { name: 'grandchild1',
               id: "2790f59c"
             },
             { name: 'grandchild2',
               id: "52126f7d"
             },
             { name: 'grandchild3',
               id: "b402f14b" 
             },
             {
               name: 'grandchild4',
               id: "6c03cff0",
               children: [
                 { name: 'great-grandchild1',
                   id: "ce90ffa6"
                 },
                 { name: 'great-grandchild2',
                   id: "52f95f28" 
                 }
              ]
            }
         ]
    },        
     {
       name: 'child2',
       id: "7693b310",
       children: [
          { name: 'grandchild5',
            id: "def86ecc"  
          },
          { name: 'grandchild6',
            id: "6224a8f8"
          }
       ]
    }
 ]
}

最终

var objects = {
  name: 'all objects',
  id:"2e6ca1c3",      
  children: [
     {
         name: 'child',
         id: "6c03cfbe",
         children: [                 
             { name: 'grandchild1',
               id: "2790f59c"
             },
             { name: 'grandchild2',
               id: "52126f7d",
               children = [
                 { name: 'great-granchild3',
                   id: '2a12a10h'
                 },
                 { name: 'great-granchild4',
                   id: 'bpme7qw0'
                 }
               ]
             },
             { name: 'grandchild3',
               id: "b402f14b" 
             },
             {
               name: 'grandchild4',
               id: "6c03cff0",
               children: [
                 { name: 'great-grandchild1',
                   id: "ce90ffa6"
                 },
                 { name: 'great-grandchild2',
                   id: "52f95f28" 
                 }
              ]
            }
         ]
    },        
     {
       name: 'child2',
       id: "7693b310",
       children: [
          { name: 'grandchild5',
            id: "def86ecc"  
          },
          { name: 'grandchild6',
            id: "6224a8f8"
          }
       ]
    }
 ]
}
汤玛士

首先找到合适的节点

function getNodeById(id, node){
    var reduce = [].reduce;
    function runner(result, node){
        if(result || !node) return result;
        return node.id === id && node || //is this the proper node?
            runner(null, node.children) || //process this nodes children
            reduce.call(Object(node), runner, result);  //maybe this is some ArrayLike Structure
    }
    return runner(null, node);
}

var target = getNodeById("52126f7d", objects);
target.children = children;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ExtJs 4.1树面板中按ID或名称查找节点

来自分类Dev

在树中查找相邻节点

来自分类常见问题

查找树中给定深度的节点数

来自分类Dev

在Haskell树中查找节点的值

来自分类Dev

在树C ++中查找特定的节点高度

来自分类Dev

查找树中的最大节点数

来自分类Dev

jsTree无法按ID查找节点

来自分类Dev

如何在节点Mongodb中按ID删除Json对象?

来自分类Dev

使用Clojure拉链查找树中节点的位置

来自分类Dev

在“有序树遍历”中查找特定节点

来自分类Dev

在二叉树中查找节点的父级

来自分类Dev

在“有序树遍历”中查找特定节点

来自分类Dev

使用Clojure拉链查找树中节点的位置

来自分类Dev

在二叉树中查找节点的父级

来自分类Dev

递归查找二叉树中节点的路径

来自分类Dev

通过一些参数在JavaScript树中查找节点

来自分类Dev

在二叉树Java中查找并返回节点

来自分类Dev

如何在二叉搜索树中查找节点

来自分类Dev

在具有完整路径的树中查找匹配的节点

来自分类Dev

在python中使用递归在通用树中查找节点

来自分类Dev

查找树内最近的节点

来自分类Dev

在数据树中查找通过树模型中节点规则的数据元素?

来自分类Dev

从ID集合中查找公共节点

来自分类Dev

mongodb 节点 - 按 json 对象数组查找文档

来自分类Dev

从树中获取节点

来自分类Dev

在jQuery中按部分ID查找元素?

来自分类Dev

在MongoDB中按ID查找返回null

来自分类Dev

在Kotlin中按ID查找按钮

来自分类Dev

在图库中按ID查找图像