虽然循环获取请求并返回真实的项

时间:2018-10-19 09:52:20

标签: javascript angularjs loops

初学者问题。我有一个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,就像我想要的那样。但现在我希望响应只包含正确的项目。做这个的最好方式是什么?我想我做错了。

3 个答案:

答案 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);