繁体   English   中英

如何基于键搜索充满对象的数组并返回特定对象

[英]how to search an array full of objects based on a key and return a specific object

我有一个对象数组:

    [{
    "businessunit": [{
        "Area": [{
            "Asset": [{
                "Wells": {
                    "Well": "Well 11"
                },
                "name": "Field 1"
            }, {
                "Wells": {
                    "Well": "Well 12"
                },
                "name": "Field 2"
            }],
            "name": "Archer"
        }, {
            "Asset": [{
                "Wells": {
                    "Well": "Well 13"
                },
                "name": "Field 3"
            }, {
                "Wells": {
                    "Well": "Well 14"
                },
                "name": "Field 4"
            }],
            "name": "Anderson"
        }],
        "name": "North America"
    }, {
        "Area": [{
            "Asset": [{
                "Wells": {
                    "Well": "Well 15"
                },
                "name": "Field 5"
            }, {
                "Wells": {
                    "Well": "Well 16"
                },
                "name": "Field 6"
            }],
            "name": "ArcherSouth"
        }, {
            "Asset": [{
                "Wells": {
                    "Well": "Well 17"
                },
                "name": "Field 7"
            }, {
                "Wells": {
                    "Well": "Well 18"
                },
                "name": "Field 8"
            }],
            "name": "AndersonSouth"
        }],
        "name": "South America"
    }],
    "name": "XYZ Oil Co"
}, {
    "businessunit": [{
        "Area": [{
            "Asset": {
                "Wells": {
                    "Well": "Well 19"
                },
                "name": "Field 9"
            },
            "name": "Archer"
        }, {
            "Asset": [{
                "Wells": {
                    "Well": "Well 110"
                },
                "name": "Field 10"
            }, {
                "Wells": {
                    "Well": "Well 120"
                },
                "name": "Field 20"
            }],
            "name": "Anderson"
        }],
        "name": "North America"
    }, {
        "Area": {
            "Asset": [{
                "Wells": {
                    "Well": "Well 130"
                },
                "name": "Field 30"
            }, {
                "Wells": {
                    "Well": "Well 140"
                },
                "name": "Field 40"
            }],
            "name": "AndersonSouth"
        },
        "name": "South America"
    }],
    "name": "ABC Oil Co"
}];

我想根据提供的键进行搜索,并返回包含该键的特定对象。

例如:如果我通过key = "North America" ,我将得到:

{
    "Area": [{
        "Asset": [{
            "Wells": {
                "Well": "Well 11"
            },
            "name": "Field 1"
        }, {
            "Wells": {
                "Well": "Well 12"
            },
            "name": "Field 2"
        }],
        "name": "Archer"
    }, {
        "Asset": [{
            "Wells": {
                "Well": "Well 13"
            },
            "name": "Field 3"
        }, {
            "Wells": {
                "Well": "Well 14"
            },
            "name": "Field 4"
        }],
        "name": "Anderson"
    }],
    "name": "North America"
}

我试过了

function search(nameKey, myArray) {
            for (var i = 0; i < myArray.length; i++) {
                if (myArray[i].name === nameKey) {
                    return myArray[i];
                }
            }
        }

但是由于我的对象数组又包含了更多的对象数组。 这没有帮助。

使用过滤器:

var results = $filter('filter')(myArray, { 'name': nameKey }, true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM