初学者问题。我有一个angularjs项目。我使用的是$ http.get请求,该请求返回json格式的项目。
{ "total": 3,"items": [{"container":bla, "conf": { "id": "unique ID1"} }, {"container":bla, "conf": { "id": "unique ID2"}, {"container":bla, "conf": { "id": "unique ID3"} } } ] }
我想遍历所有项目。目前我有此代码:
for (var i = 0; i < response.items.length; i++) {
if (id === response.items[i].conf.id){
return response.items === true;
} else {
}
这返回true,就像我想要的那样。但现在我希望响应只包含正确的项目。做这个的最好方式是什么?我想我做错了。
答案 0 :(得分:2)
您可以简单地使用filter
方法来查找数组中与谓词(布尔条件)匹配的所有项目,即
const itemsWithId = response.items.filter(i => i.conf.id === id)
在此处参阅过滤器文档:https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
答案 1 :(得分:1)
您可以使用 array.filter
let result = response.items.filter(res=>res.conf.id === "yourId");
答案 2 :(得分:0)
使用数组过滤器
let arr=[{"container":'ruy', "conf": { "id": "1"} },{"container":'bla', "conf": { "id": "2"} },{"container":'bla', "conf": { "id": "3"} }]
let id="1";
let result = arr.filter(({conf})=>conf.id === id);
console.log('result',result);