我在 JavaScript 中构建一些对象并将这些对象推送到一个数组中,我将我想要使用的密钥存储在一个变量中,然后创建我的对象,如下所示:
var key = "happyCount";
myArray.push( { key : someValueArray } );
但是当我尝试检查每个对象的对象数组时,键"key"
不是变量键的值。有没有办法从变量中设置键的值?
小提琴以获得更好的解释:http: //jsfiddle.net/Fr6eY/3/
我在 JavaScript 中构建一些对象并将这些对象推送到一个数组中,我将我想要使用的密钥存储在一个变量中,然后创建我的对象,如下所示:
var key = "happyCount";
myArray.push( { key : someValueArray } );
但是当我尝试检查每个对象的对象数组时,键"key"
不是变量键的值。有没有办法从变量中设置键的值?
小提琴以获得更好的解释:http: //jsfiddle.net/Fr6eY/3/
您需要先制作对象,然后使用[]
设置它。
var key = "happyCount";
var obj = {};
obj[key] = someValueArray;
myArray.push(obj);
2021 年更新:
计算属性名称功能是在 ECMAScript 2015 (ES6) 中引入的,它允许您以 JavaScript 对象文字表示法动态计算对象属性的名称。
const yourKeyVariable = "happyCount";
const someValueArray= [...];
const obj = {
[yourKeyVariable]: someValueArray,
}
在 ES6 中,你可以这样做。
var key = "name";
var person = {[key]:"John"}; // same as var person = {"name" : "John"}
console.log(person); // should print Object { name="John"}
var key = "name";
var person = {[key]:"John"};
console.log(person); // should print Object { name="John"}
它称为计算属性名称,它使用括号表示法(方括号)实现[]
例子:{ [variableName] : someValue }
从 ECMAScript 2015 开始,对象初始值设定项语法也支持计算属性名称。这允许您将表达式放在括号 [] 中,该表达式将被计算并用作属性名称。
对于 ES5,试试这样的
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"}