对象属性名称中的变量

时间:2018-02-27 16:06:45

标签: javascript

我想设置这样的对象:

var x = 20;
var y = 30;
var z = {
         values: { 
                  x: '24',
                  y: '60'  }, 
         value: x
         };

我希望变量z看起来:

var z = {
         values: { 
                  20: '24',
                  30: '60'  }, 
         value: 20
         };

2 个答案:

答案 0 :(得分:7)

将它们放入square括号中。这通常称为计算属性名称,它允许将变量放入将被计算的方括号中

var x = 20;
var y = 30;
var z = {
  values: {
    [x]: '24',
    [y]: '60'
  },
  value: x
};

console.log(z)

答案 1 :(得分:1)

brk发布的方括号解决方案很好,但仅限于与Internet Explorer不同的浏览器。 在IE11下你需要做这样的事情:

Role