首頁  >  問答  >  主體

JavaScript 透過變數設定物件鍵

我正在 JavaScript 中建立一些物件並將這些對象推入數組中,我將要在變數中使用的密鑰存儲在變數中,然後創建我的對象,如下所示:

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

但是當我嘗試檢查每個物件的物件陣列時,鍵是 "key" 而不是變數鍵的值。有什麼方法可以從變數中設定鍵的值嗎?

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

P粉106301763P粉106301763345 天前480

全部回覆(2)我來回復

  • P粉321676640

    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"}

    回覆
    0
  • P粉579008412

    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,
    }

    回覆
    0
  • 取消回覆