我正在 JavaScript 中构建一些对象并将这些对象推入数组中,我将要在变量中使用的密钥存储在变量中,然后创建我的对象,如下所示:
var key = "happyCount"; myArray.push( { key : someValueArray } );
但是当我尝试检查每个对象的对象数组时,键是 "key"
而不是变量键的值。有什么方法可以从变量中设置键的值吗?
小提琴以获得更好的解释: http://jsfiddle.net/Fr6eY/3/
P粉3216766402023-10-10 10:06:39
在 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 }
对于 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"}
P粉5790084122023-10-10 00:58:48
您需要先创建对象,然后使用[]
设置它。
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, }