javascript(angularjs)检查js对象中是否存在值

javascript (angularjs) check if value exists in js object

本文关键字:是否 存在 对象 js angularjs 检查 javascript      更新时间:2024-01-03

我有以下对象

{
  0 : false,
  1 : true,
  2 : false
}

我需要做的是循环这些值,并根据条件将其中一些值设置为true或false,但我需要一个函数来检查是否所有值都设置为true,或者对象中是否存在false。

我有以下内容来检查值是否为假,以做一些

 angular.forEach($scope.keyFiles, function (val, key) {
        if(val == false) {
              $scope.loadCanvas(key);
              return key;
        }
 });

但我现在需要一些东西来检查是否在任何值中都存在false,以及是否所有值都设置为true。

我是javascript的新手,所以如果这听起来像是一个简单的解决方案,请原谅我。

希望这就是您想要的。

function containsFalse(obj){
    for(var prop in obj){
       if(obj[prop] === false) return true;
    }
    return false;
}

这里有一种简单的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);

有关此MDN链接中hasOwnProperty的更多信息

在现代浏览器(即IE 9+、Chrome 5+等)中,代码可以简化如下:

for (var prop in Object.getOwnPropertyNames(keyFiles)) {
    if (keyFiles[prop] === false) {
        falseExists = true;
        break;
    }
}