首頁 >web前端 >js教程 >如何使用遞歸按鍵來尋找巢狀數組中的物件?

如何使用遞歸按鍵來尋找巢狀數組中的物件?

DDD
DDD原創
2024-11-19 17:55:021045瀏覽

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

透過鍵找出巢狀陣列中的物件

在處理複雜的巢狀資料結構時,通常需要依照鑰匙。這可能具有挑戰性,尤其是當資料嵌套很深時。

遞歸來救援

遞歸允許我們透過將巢狀資料分解為更小的資料來導航它。可管理的區塊。這是一個遞歸函數,可以找到具有給定鍵的物件:

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;
}

使用範例

讓我們使用此函數來找出id 為1 的物件範例巢狀數組:

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

以上是如何使用遞歸按鍵來尋找巢狀數組中的物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn