javascript - 使用 javascript 为层次结构对象更新 json

标签 javascript tree iteration

一个简单的问题,我想使用 javascript 更新 json 而无需迭代。

示例:

{ "parent":{
  "id":"1",
  "status":"Bad",
  "children":[
     {
        "id":"2",
        "status":"Good",
        "children":[
           {
              "id":"3",
              "status":"Bad",
              "children":[

              ]
           },
           {
              "id":"4",
               "status":"Bad",
              "children":[

              ]
           }
        ]
     },
     {
        "id":"4",
        "status":"Bad",
        "children":[
           {
              "id":"3",
              "status":"Bad",
              "children":[

              ]
           },
           {
              "id":"4",
               "status":"Bad",
              "children":[

              ]
           }
        ]
     }
  ]
}}   

在这个树结构中,id 对很多对象来说都是通用的。如果我想更新“3”的所有 ID 的状态,目前正在继续迭代以找到相应的 ID 并更新状态。这非常耗时,有没有一种方法可以在不迭代的情况下使用 id 更新状态。

我找到了一个名为“pinch”的 js,但它没有用,它在内部进行相同的迭代。那么有没有一种方法可以在不进行迭代的情况下更新状态。

我也欢迎最好的遍历想法。

最佳答案

你可以像这样存储你的对象:

objs = [
{"id":"1","status":"Bad",children:[]},
{"id":"2","status":"Good",children:[]},
{"id":"3","status":"Bad",children:[]},
{"id":"4","status":"Bad",children:[]}]

objs[0].children=[objs[1],objs[2]]

objs.map(function(t){t.status="Updated"})

以这种方式,JS 通过链接处理参数,您可以对列表执行任何操作 - 更改也会出现在 json obj 中。

关于javascript - 使用 javascript 为层次结构对象更新 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985509/

相关文章:

python - 遍历/遍历任意深度的嵌套字典(字典表示目录树)

javascript - angularjs ng-repeat 来自 json 嵌套的下拉菜单

javascript - 尝试将数据推送到 JSON 数组

javascript - JS根据数字显示数组值

mysql - 查询遍历树mysql

c++ - 获取二叉搜索树中的节点数

python - 如何遍历 Jinja 模板中的字典列表?

python::遍历嵌套的 JSON 结果

c++ - 迭代不断变化的容器

javascript - Node Firebird 顺序选择不起作用