Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mencipta Objek JavaScript dengan Kunci Rentetan yang Ditugaskan Secara Dinamik?

Bagaimanakah Saya Boleh Mencipta Objek JavaScript dengan Kunci Rentetan yang Ditugaskan Secara Dinamik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-06 05:07:13552semak imbas

How Can I Create JavaScript Objects with Dynamically Assigned String Keys?

Menggunakan Sifat Dinamik dalam Objek

Mencipta objek dengan sifat berubah-ubah dalam JavaScript kadangkala boleh memberikan cabaran. Dalam konteks ini, kami akan menyelidiki teknik untuk menetapkan rentetan sebagai kunci objek, menyediakan penyelesaian untuk kedua-dua standard ES2015 terkini dan versi JavaScript yang lebih awal.

Penyelesaian ES2015 (ES6)

1. Sifat Dikira:

ES2015 memperkenalkan konsep sifat yang dikira, membolehkan penciptaan objek dengan kunci yang dikira secara dinamik:

var obj = {
  [myKey]: value,
};

Menggunakan ini pada senario:

stuff = function (thing, callback) {
  var inputs = $('div.quantity > input').map(function () {
    return {
      [this.attr('name')]: this.attr('value'),
    };
  });

  callback(null, inputs);
};

Nota: Untuk keserasian penyemak imbas, pertimbangkan untuk menggunakan transpiler seperti Babel.

Penyelesaian Pra-ES2015

2. Notasi Kurungan:

ES5 dan versi terdahulu memerlukan penggunaan tatatanda kurungan untuk menetapkan kunci dinamik:

var obj = {};
obj[myKey] = value;

Dalam keadaan ini:

stuff = function (thing, callback) {
  var inputs = $('div.quantity > input').map(function () {
    var key = this.attr('name');
    var value = this.attr('value');
    var ret = {};

    ret[key] = value;
    return ret;
  });

  callback(null, inputs);
};

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Objek JavaScript dengan Kunci Rentetan yang Ditugaskan Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn