我正在 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, }