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

Cara Mudah Mengakses Objek dan Tatasusunan JavaScript Bersarang Menggunakan Laluan Rentetan?

Linda Hamilton
Linda Hamiltonasal
2024-12-23 11:56:08708semak imbas

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

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!

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