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

javascript (angularjs) check if value exists in js object

我有以下对象

{
  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 的新手,如果这听起来像是一个简单的解决方案,请原谅。

希望这就是您要找的。

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 link

中详细了解 hasOwnProperty

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

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