首页 > 解决方案 > 更改嵌套对象键的值

问题描述

我在更改对象数组中的键值时遇到问题。我正在使用的对象非常复杂,数组中的每个对象可能有不同数量的键,但是 JSON 的基本结构如下所示:

var payload = {
    "data": {
        "form_values": {            
            "70f9": [
                {
                    "form_values": {
                        "6949": "drop"                       
                    },                    
                },
                {                   
                    "form_values": {                        
                        "6949": "drop"                        
                    },
                    
                },
                {                    
                    "form_values": {                        
                        "6949": "drop"                        
                    },
                    
                }
            ],            
        },        
    }
}

我一直在尝试将“drop”更改为“active”,如下所示:

for (var i = 0; i < payload.data.form_values['70f9'].length; i++ ){
    var payload.data.form_values['70f9'][i].form_values['6949'] = 'active'
}

我觉得这通常有效,但由于某种原因,这次我遇到了问题

标签: javascriptarraysjsonfor-loopobject

解决方案


您每次在循环中都错误地声明变量:

 var payload.data.form_values['70f9'][i].form_values['6949'] = 'active'

你必须把它拿出来var

for (var i = 0; i < payload.data.form_values['70f9'].length; i++ ){
   payload.data.form_values['70f9'][i].form_values['6949'] = 'active'
}

推荐阅读