Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek dengan Selamat?

Bagaimanakah Saya Boleh Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek dengan Selamat?

Linda Hamilton
Lepaskan: 2024-12-20 19:27:10
asal
246 orang telah melayarinya

How Can I Safely Convert a JavaScript Dot Notation String to an Object Reference?

Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek

Dalam JavaScript, anda boleh menghadapi senario di mana anda perlu menukar rentetan notasi titik , seperti "a.b", menjadi rujukan kepada sifat bersarang dalam objek. Ini amat berguna apabila bekerja dengan struktur data kompleks atau data yang datang daripada sumber luaran.

Satu penyelesaian mudah ialah menggunakan fungsi eval():

var obj = { a: { b: '1', c: '2' } };
eval('var val = obj.a.b');
console.log(val); // '1'
Salin selepas log masuk

Walau bagaimanapun, menggunakan eval( ) secara amnya tidak digalakkan disebabkan oleh kebimbangan keselamatan dan potensi isu prestasi.

Pendekatan yang lebih dipercayai ialah menggunakan akses berasaskan indeks menggunakan gabungan belah dan kurangkan:

function index(obj, path) {
  return path.split('.').reduce((o, i) => o[i], obj);
}

var val = index(obj, 'a.b');
console.log(val); // '1'
Salin selepas log masuk

Fungsi ini membahagikan laluan pada setiap titik ('.') dengan berkesan dan menggunakan reduce untuk mengakses sifat bersarang secara berulang dalam objek.

Dengan menggunakan teknik ini, anda boleh menukar rentetan notasi titik kepada rujukan objek dengan selamat dan cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan Notasi Titik JavaScript kepada Rujukan Objek dengan Selamat?. 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