[英]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.