我有以下javascript对象数组,如果至少有一个对象为true,我需要检查输出属性返回true否则返回false,有人可以帮我实现吗?
var array=[{"id":100,"output":false},{"id":100,"output":false},
{"id":100,"output":true}]
答案 0 :(得分:9)
您可以使用Array#some
some()
方法测试数组中的某个元素是否通过了由提供的函数实现的测试。
var array = [{ "id": 100, "output": false }, { "id": 100, "output": false }, { "id": 100, "output": true }];
result = array.some(function (a) { return a.output; });
console.log(result);
答案 1 :(得分:1)
function hasOneTrue(a){
return !!a.filter(function(v){
return v.output;
}).length;
}
var array = [{"id":100,"output":false}, {"id":100,"output":false}, {"id":100,"output":true}]
console.log(hasOneTrue(array)); // true
答案 2 :(得分:0)
你可以遍历数组并检查每个属性。
var array = [
{"id":100,"output":false},
{"id":100,"output":false},
{"id":100,"output":true}
];
function testOutput ( array ) {
for (el in array)
if ( el.output ) return true;
return false;
}
testOutput (array);
最好的问候
答案 3 :(得分:0)
最快+最兼容
var result = false
var json = [{"id":100,"output":false},{"id":100,"output":false},{"id":100,"output":true}]
for(
var i = json.length;
!result && i;
result = json[--i].output
);
console.log("at least one? ", result)