Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mencari Objek dalam Tatasusunan Bersarang dengan Kunci Menggunakan Rekursi?

Bagaimana untuk Mencari Objek dalam Tatasusunan Bersarang dengan Kunci Menggunakan Rekursi?

DDD
Lepaskan: 2024-11-19 17:55:02
asal
1030 orang telah melayarinya

How to Find Objects in Nested Arrays by Key Using Recursion?

Mencari Objek dalam Tatasusunan Bersarang oleh Kunci

Apabila bekerja dengan struktur data bersarang yang kompleks, selalunya perlu untuk mencari objek tertentu berdasarkan kunci. Ini boleh menjadi mencabar, terutamanya apabila data bersarang dalam.

Rekursi ke Penyelamat

Rekursi membolehkan kami menavigasi melalui data bersarang dengan membahagikannya kepada yang lebih kecil, bongkah terurus. Berikut ialah fungsi rekursif yang boleh mencari objek dengan kunci yang diberikan:

function getObject(theObject) {
    var result = null;
    if (theObject instanceof Array) {
        for (var i = 0; i < theObject.length; i++) {
            result = getObject(theObject[i]);
            if (result) {
                break;
            }
        }
    } else {
        for (var prop in theObject) {
            if (prop == 'id') {
                if (theObject[prop] == 1) {
                    return theObject;
                }
            }
            if (theObject[prop] instanceof Object || theObject[prop] instanceof Array) {
                result = getObject(theObject[prop]);
                if (result) {
                    break;
                }
            }
        }
    }
    return result;
}
Salin selepas log masuk

Contoh Penggunaan

Mari kita gunakan fungsi ini untuk mencari objek di mana id adalah 1 in contoh tatasusunan bersarang:

var myArray = [{
    'title': "some title",
    'channel_id': '123we',
    'options': [{
        'channel_id': 'abc',
        'image': 'http://asdasd.com/all-inclusive-block-img.jpg',
        'title': 'All-Inclusive',
        'options': [{
            'channel_id': 'dsa2',
            'title': 'Some Recommends',
            'options': [{
                'image': 'http://www.asdasd.com',
                'title': 'Sandals',
                'id': '1',
                'content': {
                    // ...
                }
            }]
        }]
    }]
}];

var result = getObject(myArray);
console.log(result); // prints the found object
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencari Objek dalam Tatasusunan Bersarang dengan Kunci Menggunakan Rekursi?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan