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
Lepaskan: 2024-10-29 06:50:02
asal
516 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Output:

Objek yang terhasil selepas menetapkan sifat secara dinamik:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan