我有以下对象
{
0 : false,
1 : true,
2 : false
}
我需要做的是循环遍历这些并根据条件将其中一些设置为true或false,但我需要一个函数来检查所有值是否设置为true或者对象中是否存在false。
我有以下内容来检查值是否为false以执行某些操作
angular.forEach($scope.keyFiles, function (val, key) {
if(val == false) {
$scope.loadCanvas(key);
return key;
}
});
但我现在需要一些东西来检查任何值中是否存在false,以及是否所有值都设置为true。
我是javascript的新手,请原谅我,如果这听起来像一个简单的解决方案。
答案 0 :(得分:5)
希望这就是你要找的东西。
function containsFalse(obj){
for(var prop in obj){
if(obj[prop] === false) return true;
}
return false;
}
答案 1 :(得分:2)
这是一种简单的javascript方式:
var keyFiles = {
0 : false,
1 : true,
2 : false
};
var falseExists = false;
for (var prop in keyFiles) {
if (keyFiles.hasOwnProperty(prop) && keyFiles[prop] === false) {
falseExists = true;
break;
}
}
console.log(falseExists);
中hasOwnProperty
的更多信息
在现代浏览器(即IE 9 +,Chrome 5+等)中,代码可以简化如下:
for (var prop in Object.getOwnPropertyNames(keyFiles)) {
if (keyFiles[prop] === false) {
falseExists = true;
break;
}
}