首页  >  文章  >  web前端  >  如何使用递归按键查找嵌套数组中的对象?

如何使用递归按键查找嵌套数组中的对象?

DDD
DDD原创
2024-11-19 17:55:02985浏览

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