Heim  >  Fragen und Antworten  >  Hauptteil

JavaScript legt den Objektschlüssel über eine Variable fest

Ich erstelle einige Objekte in JavaScript und schiebe diese Objekte in ein Array. Ich speichere den Schlüssel, den ich verwenden möchte, in einer Variablen und erstelle dann mein Objekt wie folgt:

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

Aber wenn ich versuche, das Array von Objekten für jedes Objekt zu überprüfen, sind die Schlüssel "key" und nicht der Wert der Variablen key. Gibt es eine Möglichkeit, den Wert eines Schlüssels aus einer Variablen festzulegen?

Geige zur besseren Erklärung: http://jsfiddle.net/Fr6eY/3/

P粉106301763P粉106301763346 Tage vor481

Antworte allen(2)Ich werde antworten

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

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

    Antwort
    0
  • StornierenAntwort