Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengakses Objek dan Tatasusunan JavaScript Bersarang Menggunakan Laluan Rentetan?

Bagaimana untuk Mengakses Objek dan Tatasusunan JavaScript Bersarang Menggunakan Laluan Rentetan?

Susan Sarandon
Susan Sarandonasal
2024-12-26 14:22:16172semak imbas

How to Access Nested JavaScript Objects and Arrays Using String Paths?

Mengakses Objek dan Tatasusunan JavaScript oleh Laluan Rentetan

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:

JavaScript Tulen

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"

jQuery

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!

Kenyataan:
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