JavaScript将匿名对象键设置为变量名

时间:2013-09-04 15:26:36

标签: javascript

    var curr = data[i],
        newArray = [],
        key = curr.Frequency.Type,
        obj = {key: []};
    newArray.push(obj);

然而,这会产生一个带有“key”键的对象!如何使用变量值key

的键创建新对象

4 个答案:

答案 0 :(得分:2)

你可以这样做:

var curr = data[i],
    newArray = [],
    key = curr.Frequency.Type,
    obj = {};

obj[key] = [];
newArray.push(obj);

在对象文字本身的JavaScript中无法做到这一点;语法只是没有提供。

答案 1 :(得分:1)

我认为你的意思是这个符号:

var type = "some type";
var obj = {}; // can't do it one line
obj[type] = [];
console.log(obj); // { "some type": [] }

答案 2 :(得分:1)

简单地从函数中实例化一个新的匿名对象。

obj = new function () {
    this[key] = [];
};

答案 3 :(得分:0)

我意识到这是一个古老的问题,但是对于那些通过Google发现此问题的人来说,使用ES6 +的方法是在对象文字中使用方括号表示法:

const key = 'dynamicKey';
const value = 5;

const objectWithDynamicKey = {
  staticKey: 'another value',
  [key]: value 
}
console.log(objectWithDynamicKey) 

哪些印刷品:

{ 
  staticKey: 'another value', 
  dynamicKey: 5
}

因此,您的示例应为:

var curr = data[i];
var newArray = [];
var key = curr.Frequency.Type;
var obj = { [key]: [] };
newArray.push(obj);