【问题标题】:How to modify key value pair in a nested Object Array generated dynamically如何修改动态生成的嵌套对象数组中的键值对
【发布时间】:2019-05-06 13:24:35
【问题描述】:

我有下面的数组..

[{
    "text": "test",
    "subheader": "Production",
    "enabled": false,
    "nodes": [{
        "text": "test",
        "subheader": "JP",
        "enabled": false,
        "nodes": [{
            "text": "test",
            "subheader": "test Operations",
            "enabled": true,
            "nodes": [{
                "text": "test",
                "subheader": "test Operations",
                "enabled": false,
                "nodes": [{
                    "text": "test",
                    "subheader": "test Operations",
                    "enabled": true
                }]
            }]
        }]
    }, {
        "text": "test",
        "subheader": "Planning JP",
        "enabled": false,
        "nodes": [{
            "text": "test",
            "subheader": "test Operations",
            "enabled": false,
            "nodes": [{
                "text": "test",
                "subheader": "test Operations",
                "enabled": true
            }]
        }]
    }, {
        "text": "test",
        "subheader": "india",
        "enabled": false
    }, {
        "text": "test",
        "subheader": "Sales Office, South East Japan",
        "enabled": false
    }, {
        "text": "test",
        "subheader": "Partner Sales JP",
        "enabled": false
    }]
}]

如果你看到这个数组块。

"nodes": [{
            "text": "test",
            "subheader": "test Operations",
            "enabled": true
        }]

上面的数组代码块是动态添加的,可以添加n次。现在我只想在整个数组中将 enabled true 更改为 false

有人可以帮我编写代码以循环并在完整结构中将启用的值更改为 false 吗?

【问题讨论】:

  • 1.解析 JSON。 2.通过递归迭代对象来修改JS数组(在google或here中搜索)。 3.字符串化成JSON

标签: javascript json


【解决方案1】:

我知道这是一个糟糕的问题,但这里有一个非常简单的方法可以将 ALL enabled:false 更改为 true

let arr = [{ "text": "test", "subheader": "Production", "enabled": false, "nodes": [{ "text": "test", "subheader": "JP", "enabled": false, "nodes": [{ "text": "test", "subheader": "test Operations", "enabled": true, "nodes": [{ "text": "test", "subheader": "test Operations", "enabled": false, "nodes": [{ "text": "test", "subheader": "test Operations", "enabled": true }] }] }] }, { "text": "test", "subheader": "Planning JP", "enabled": false, "nodes": [{ "text": "test", "subheader": "test Operations", "enabled": false, "nodes": [{ "text": "test", "subheader": "test Operations", "enabled": true }] }] }, { "text": "test", "subheader": "india", "enabled": false }, { "text": "test", "subheader": "Sales Office, South East Japan", "enabled": false }, { "text": "test", "subheader": "Partner Sales JP", "enabled": false }] }]

arr = JSON.parse(JSON.stringify(arr).replace(/"enabled"\:false/g,'"enabled":true'))
console.log(arr)

【讨论】:

    【解决方案2】:

    您可以简单地使用地图功能:

    let data={
         "nodes": [{
                "text": "test",
                "subheader": "test Operations",
                "enabled": true
            }]
     }
    
    
      data.nodes.map((node)=>Object.assign(node,{enabled:false}))
    

    【讨论】:

    • change the enabled value to false in complete Structure
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2017-07-01
    • 1970-01-01
    • 2021-12-06
    • 2021-10-27
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多