JavaScript按变量设置对象键

时间:2012-07-16 16:24:24

标签: javascript

我正在用JavaScript构建一些对象并将这些对象推送到一个数组中,我正在存储我想要在变量中使用的键,然后像这样创建我的对象:

var key = "happyCount";
myArray.push( { key : someValueArray } );

但是当我尝试检查每个对象的对象数组时,键是"key"而不是变量键的值。有没有办法从变量设置键的值?

小提琴以获得更好的解释: http://jsfiddle.net/Fr6eY/3/

2 个答案:

答案 0 :(得分:1218)

您需要先创建对象,然后使用[]进行设置。

var key = "happyCount";
var obj = {};
obj[key] = someValueArray;
myArray.push(obj);

2018年更新:

如果您能够使用ES6和Babel,则可以使用以下新功能:

{
    [yourKeyVariable]: someValueArray,
}  

答案 1 :(得分:244)

尝试这样的事情(在答案结尾处查看ES6示例)

var yourObject = {};

yourObject[yourKey] = "yourValue";

console.log(yourObject );

示例:

var person = {};
var key = "name";

person[key] /* this is same as person.name */ = "John";

console.log(person); // should print  Object { name="John"}

    var person = {};
    var key = "name";
    
    person[key] /* this is same as person.name */ = "John";
    
    console.log(person); // should print  Object { name="John"}

在ES6中,您可以这样做。

var key = "name";
var person = {[key]:"John"};
console.log(person); // should print  Object { name="John"}

    var key = "name";
    var person = {[key]:"John"};
    console.log(person); // should print  Object { name="John"}