Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menetapkan Nilai Secara Dinamik kepada Objek JavaScript Bersarang Dalam Menggunakan Hanya Nama Harta Rentetan?
Penugasan Harta Dinamik dalam JavaScript
Dalam senario tertentu, anda mungkin menghadapi keperluan untuk menetapkan nilai kepada harta yang bersarang dalam dalam objek struktur. Walau bagaimanapun, anda mungkin hanya mempunyai nama sifat sebagai rentetan. Ini boleh menimbulkan cabaran, kerana mengakses secara langsung harta itu memerlukan merentasi keseluruhan hierarki objek.
Penyelesaian
Untuk menangani isu ini, kami boleh menggunakan assign() fungsi:
function assign(obj, prop, value) { if (typeof prop === "string") prop = prop.split("."); if (prop.length > 1) { var e = prop.shift(); assign(obj[e] = Object.prototype.toString.call(obj[e]) === "[object Object]" ? obj[e] : {}, prop, value); } else obj[prop[0]] = value; }
Penggunaan
Mari kita pertimbangkan contoh:
var obj = {}; var propName = "foo.bar.foobar"; assign(obj, propName, "Value");
Penjelasan
Dengan menggunakan fungsi assign(), anda boleh menetapkan nilai secara dinamik kepada sifat pada sebarang tahap kedalaman, walaupun anda hanya mempunyai nama sifat sebagai rentetan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Nilai Secara Dinamik kepada Objek JavaScript Bersarang Dalam Menggunakan Hanya Nama Harta Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!