2014-08-27 98 views
-1

如何更改动态嵌套javascript对象中属性的值?如何使用javascript更改嵌套对象中的值

对象: "chart": { "height": 400, "width": 600, "margin":{"top": 0, "right": 0, "bottom": 0, "left": 0},
"padding":{"top": 0, "right": 0, "bottom": 0, "left": 0}, "grid" : { "xEnabled":"yes", "yEnabled":"yes", "color": "#ddd" } },

我怎样才能使用JavaScript padding.top改变从0到20。

任何代码都会有帮助。

+0

看看这个:http://css-tricks.com/forums/topic/need-help-with -javascript-inheritance-and-nested-objects/ – ctwheels 2014-08-27 19:12:18

+0

我修改了一下我的问题。改变的关键和价值来自变量。那么我们应该如何实现它? – 2014-08-27 19:19:03

回答

0
var whatKey = 'top'; 
var whatValue = 20; 

var myObject = {"chart": { 
      "height": 400, 
      "width": 600, 
      "margin":{"top": 0, "right": 0, "bottom": 0, "left": 0}, 

      "padding":{"top": 0, "right": 0, "bottom": 0, "left": 0}, 
      "grid" : { 
       "xEnabled":"yes", 
       "yEnabled":"yes", 
       "color": "#ddd" 
      } 
    } 
}; 
myObject.chart.padding[whatKey] = whatValue; 
alert(JSON.stringify(myObject)); 

参见:http://jsfiddle.net/qc18kfmj/

+0

我修改了一下我的问题。改变的关键和价值来自变量。那么我们应该如何实现它? – 2014-08-27 19:19:45

+0

要用变量指定属性名称,请使用下标语法。 (OBJ [PROPERTYNAME])。 – folkol 2014-08-27 19:27:29

+0

我根据你的新问题更新了答案。 – folkol 2014-08-27 19:28:20

0

您可如下更改:

var c = { 
     "chart": { 
      "height": 400, 
      "width": 600, 
      "margin": { "top": 0, "right": 0, "bottom": 0, "left": 0 }, 

      "padding": { "top": 0, "right": 0, "bottom": 0, "left": 0 }, 
      "grid": { 
       "xEnabled": "yes", 
       "yEnabled": "yes", 
       "color": "#ddd" 
      } 
     } 
    }; 
    c['chart']['padding']['top'] = 20; 

    alert(c['chart']['padding']['top']); 
相关问题