Mengakses Objek dan Tatasusunan JavaScript Bersarang oleh Laluan Rentetan
Mengakses objek dan tatasusunan bersarang dalam dalam JavaScript boleh menjadi tugas yang menyusahkan. Untuk memudahkan ini, penyelesaian telah muncul yang memanfaatkan laluan rentetan untuk mendapatkan semula nilai tertentu secara langsung.
Penyelesaian JavaScript Tulen
Penyelesaian JavaScript tulen yang dipanggil "Object.byString( )" membolehkan pengekstrakan nilai bersarang menggunakan rentetan yang mengikut laluan yang dipisahkan titik. Penyelesaian ini berfungsi seperti berikut:
Object.byString = function(o, s) { s = s.replace(/\[(\w+)\]/g, '.'); // convert indexes to properties s = s.replace(/^\./, ''); // strip a leading dot var a = s.split('.'); for (var i = 0, n = a.length; i < n; ++i) { var k = a[i]; if (k in o) { o = o[k]; } else { return; } } return o; }
Penggunaan:
Object.byString(someObj, 'part3[0].name');
jQuery Solution
jQuery menawarkan sintaks yang lebih mudah untuk mengakses nilai bersarang:
$('someObj').data('part3[0].name');
Contoh Penggunaan
Pertimbangkan objek berikut:
var someObject = { 'part1' : { 'name': 'Part 1', 'size': '20', 'qty' : '50' }, 'part2' : { 'name': 'Part 2', 'size': '15', 'qty' : '60' }, 'part3' : [ { 'name': 'Part 3A', 'size': '10', 'qty' : '20' }, { 'name': 'Part 3B', 'size': '5', 'qty' : '20' }, { 'name': 'Part 3C', 'size': '7.5', 'qty' : '20' } ] };
Menggunakan laluan rentetan yang disediakan, kita boleh mengakses nilai tertentu seperti berikut:
var part1name = Object.byString(someObject, 'part1.name'); var part2quantity = Object.byString(someObject, 'part2.qty'); var part3name1 = Object.byString(someObject, 'part3[0].name');
Pembolehubah ini akan sekarang pegang nilai yang sepadan daripada objek bersarang.
Atas ialah kandungan terperinci Cara Mudah Mengakses Objek dan Tatasusunan JavaScript Bersarang Menggunakan Laluan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!