Rumah >hujung hadapan web >tutorial js >Bagaimanakah Anda Boleh Menetapkan Sifat Secara Dinamik kepada Objek Bersarang dalam JavaScript?

Bagaimanakah Anda Boleh Menetapkan Sifat Secara Dinamik kepada Objek Bersarang dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-29 06:50:02513semak imbas

How Can You Dynamically Assign Properties to Nested Objects in JavaScript?

Penugasan Harta Dinamik untuk Objek Bersarang

Dalam bidang JavaScript, objek boleh menjadi struktur rumit dengan tahap kedalaman dan sifat yang berbeza-beza. Selalunya, kita menghadapi senario di mana kita perlu menetapkan atau menulis ganti sifat secara dinamik dalam objek bersarang dalam. Ini boleh terbukti mencabar, terutamanya apabila laluan dan nilai harta boleh sewenang-wenangnya.

Cabarannya:

Memandangkan objek dengan bilangan peringkat dan sifat yang sewenang-wenangnya, kami cuba mencari fungsi yang membolehkan kami menetapkan (atau menulis ganti) sifat secara dinamik menggunakan perwakilan rentetan laluan sifat, seperti yang ditunjukkan di bawah:

<code class="javascript">var obj = {
  db: {
    mongodb: {
      host: 'localhost',
    },
  },
};

// Set a new property
set('db.mongodb.user', 'root');</code>

Penyelesaian:

Untuk menangani cabaran ini, kami memperkenalkan fungsi bernama set yang mengubah suai sifat secara dinamik dalam objek bersarang. Di bawah ialah pelaksanaan:

<code class="javascript">function set(path, value) {
  var schema = obj; // Moving reference to internal objects within 'obj'
  var pList = path.split('.'); // Split the property path into an array of elements
  var len = pList.length;
  for (var i = 0; i < len - 1; i++) {
    var elem = pList[i];
    if (!schema[elem]) schema[elem] = {}; // If the element doesn't exist, create an empty object
    schema = schema[elem]; // Advance the schema reference to the next level
  }

  schema[pList[len - 1]] = value; // Update or create the property at the leaf level
}</code>

Penggunaan:

Untuk menetapkan harta, hanya lulus laluan harta dan nilai yang sepadan dengan fungsi set seperti yang dilihat dalam contoh di bawah:

<code class="javascript">set('db.mongodb.user', 'root');</code>

Output:

Objek yang terhasil selepas menetapkan sifat secara dinamik:

<code class="javascript">{
  db: {
    mongodb: {
      host: 'localhost',
      user: 'root',
    },
  },
}</code>

Melalui fungsi ini, kita memperoleh fleksibiliti untuk mengubah suai sifat bersarang secara dinamik, membolehkan manipulasi objek yang cekap dan serba boleh.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menetapkan Sifat Secara Dinamik kepada Objek Bersarang dalam JavaScript?. 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