Dalam senario tertentu, pembangun sering menghadapi struktur data dengan sarang yang kompleks dan menghadapi cabaran untuk mengakses nilai tertentu di dalamnya menggunakan rentetan sebagai laluan.
Sebagai contoh, pertimbangkan perkara berikut object:
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' } ] };
Untuk mendapatkan semula nilai bersarang menggunakan laluan rentetan, teknik berikut boleh digunakan:
Menggunakan fungsi utiliti Object.byString, anda boleh melintasi objek dan akses khusus nilai:
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(someObject, 'part3[0].name'); // "Part 3A"
kaedah $.val() jQuery juga boleh digunakan untuk menavigasi objek dan tatasusunan bersarang:
$.val('part1.name', someObject); // "Part 1" $.val('part2.qty', someObject); // 60 $.val('part3[0].name', someObject); // "Part 3A"
Kedua-dua pendekatan menyediakan cara yang mudah untuk mengakses data dalam struktur bersarang melalui laluan rentetan, memudahkan pengendalian dan manipulasi data yang kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Objek dan Tatasusunan JavaScript Bersarang Menggunakan Laluan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!