Rumah >hujung hadapan web >tutorial js >Bagaimanakah Anda Boleh Menetapkan Sifat Secara Dinamik kepada Objek Bersarang dalam 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!