Rumah > Soal Jawab > teks badan
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粉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"}
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:
CiriComputed 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, }