我正在 JavaScript 中建立一些物件並將這些對象推入數組中,我將要在變數中使用的密鑰存儲在變數中,然後創建我的對象,如下所示:
var key = "happyCount"; myArray.push( { key : someValueArray } );
但是當我嘗試檢查每個物件的物件陣列時,鍵是 "key" 而不是變數鍵的值。有什麼方法可以從變數中設定鍵的值嗎?
"key"
小提琴以獲得更好的解釋: http://jsfiddle.net/Fr6eY/3/
在 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 }
{ [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 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 中,你可以這麼做。
其名稱為計算屬性名稱,它使用括號表示法(方括號)
實現[]
範例:
{ [variableName] : someValue }
對於 ES5,嘗試這樣的動作
範例:
您需要先建立對象,然後使用
[]
設定它。2021 年更新:
計算屬性名稱功能在 ECMAScript 2015 (ES6) 中引入,它允許您以 JavaScript 物件文字表示法動態計算物件屬性的名稱。