JavaScript menetapkan kunci objek melalui pembolehubah
P粉106301763
P粉106301763 2023-10-09 12:00:10
0
2
546

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粉106301763
P粉106301763

membalas semua(2)
P粉321676640

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"}
P粉579008412

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,
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan