2017-01-10 49 views
1

特定关键特定值我有以下的JSON数组:查找JSON阵列具有角

[ 
    { "id": "1", "service": "B" }, 
    { "id": "2", "service": "A" }, 
    { "id": "3", "service": "C" } 
] 

我要检查,如果JSON数组有服务“A”,如果是,则返回true。

我正在使用angular.js。我使用angualr.forEach循环,但break不能在angular forEach中工作。是否有任何解决方案使用JavaScript map函数。

所以,我想创建一个函数,它具有上面的JSON数组作为参数,并且如果JSON数组对于特定键(“服务”)具有特定值(“A”),则返回true。

回答

2

使用原生JavaScript Array#some方法。

var data = [{ 
 
    "id": "1", 
 
    "service": "B" 
 
}, { 
 
    "id": "2", 
 
    "service": "A" 
 
}, { 
 
    "id": "3", 
 
    "service": "C" 
 
}]; 
 

 
console.log(data.some(function(v) { 
 
    return v.service == 'A'; 
 
}))


对于较旧的浏览器兼容性检查polyfill选项。

1

无论如何,您可以使用angular foreach。设置标志来停止循环。尝试这个。

var breakLoop = false; 
angular.forEach(arr, function (val) { 
    if (val.service == 'A') { 
     breakLoop = true; 
    } 
}); 
console.log(breakLoop) 
1

function myFunction(data,myVal,myKey){ 
 
    var flag=false; 
 
    angular.forEach(data,function(obj,k){ 
 
     if(obj[myKey]==myVal){ 
 
      flag=true; 
 
      } 
 
     }); 
 
    return flag; 
 
    }