Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek?
Diberi rentetan JavaScript yang mewakili laluan sifat dalam objek menggunakan tatatanda titik (cth., "a.b"), matlamatnya adalah untuk menukar rentetan ini menjadi rujukan sebenar kepada sifat yang diingini dalam objek.
Satu kaedah mudah untuk mencapai penukaran ini ialah menggunakan fungsi eval(). Walaupun menggunakan eval() secara amnya tidak digalakkan atas sebab keselamatan, ia boleh digunakan dalam senario khusus ini kerana rentetan input dikawal dan dijangka mematuhi sintaks tertentu. Kod ini hanya akan menggunakan eval("obj" string) untuk mendapatkan rujukan sifat yang diingini.
Alternatif, kurang ringkas tetapi berpotensi lebih pendekatan yang cekap dan mantap melibatkan penukaran rentetan notasi titik kepada tatasusunan nama kunci (cth., ["a", "b"]) dan seterusnya menggunakan tatasusunan ini sebagai laluan rujukan:
const keyArray = dotNotationString.split('.'); const value = obj[keyArray[0]][keyArray[1]];
Pilihan ketiga ialah mencipta fungsi rekursif yang menavigasi objek menggunakan rentetan input:
function getPropertyByDotNotation(obj, string) { if (!obj) { return undefined; } if (!string || string.length === 0) { return obj; } const [key, ...rest] = string.split('.'); return getPropertyByDotNotation(obj[key], rest.join('.')); }
Pendekatan rekursif ini memberikan fleksibiliti dan mengendalikan objek sewenang-wenangnya kedalaman.
Pilihan kaedah bergantung pada keperluan khusus dan pertimbangan prestasi. Apabila bekerja dengan input yang dipercayai dan kesederhanaan penyasaran, eval() boleh sesuai. Untuk senario dengan kebimbangan prestasi atau pengesahan input yang lebih kompleks, tatasusunan atau pendekatan rekursif menawarkan alternatif yang boleh dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!