Rumah  >  Soal Jawab  >  teks badan

JavaScript menetapkan kunci objek melalui pembolehubah

Saya sedang membina beberapa objek dalam JavaScript dan menolak objek ini ke dalam tatasusunan, saya menyimpan kunci yang saya mahu gunakan dalam pembolehubah dan kemudian mencipta objek saya seperti ini:

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

Tetapi apabila saya cuba menyemak tatasusunan objek untuk setiap objek, kuncinya ialah "key" dan bukan nilai kunci pembolehubah. Adakah terdapat cara untuk menetapkan nilai kunci daripada pembolehubah?

Fiddle untuk penjelasan yang lebih baik: http://jsfiddle.net/Fr6eY/3/

P粉106301763P粉106301763396 hari yang lalu525

membalas semua(2)saya akan balas

  • P粉321676640

    P粉3216766402023-10-10 10:06:39

    Dalam ES6 anda boleh melakukan ini.

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

    Ia dinamakan Nama sifat terkira dan ia dilaksanakan menggunakan tatatanda kurungan (tanda kurung segi empat sama) []

    Contoh: { [variableName] : someValue }

    Untuk ES5, cuba sesuatu seperti ini

    var yourObject = {};
    
    yourObject[yourKey] = "yourValue";
    
    console.log(yourObject );

    Contoh:

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

    balas
    0
  • P粉579008412

    P粉5790084122023-10-10 00:58:48

    Anda perlu mencipta objek dahulu dan kemudian menetapkannya menggunakan [].

    var key = "happyCount";
    var obj = {};
    
    obj[key] = someValueArray;
    myArray.push(obj);

    2021 Kemas Kini:

    Ciri

    Computed Property Names, yang diperkenalkan dalam ECMAScript 2015 (ES6), membolehkan anda mengira secara dinamik nama sifat objek dalam notasi literal objek JavaScript.

    const yourKeyVariable = "happyCount";
    const someValueArray= [...];
    
    const obj = {
        [yourKeyVariable]: someValueArray,
    }

    balas
    0
  • Batalbalas