javascript – 如果数组中的所有对象在属性中都有值,则返回true

我有一个对象数组,如下所示:

$scope.objectArray = [
  {Title: 'object1', Description: 'lorem', Value: 57},
  {Title: 'object2', Description: 'ipsum', Value: 32},
  {Title: 'object3', Description: 'dolor', Value: 135}
]

我想检查并返回true,如果此数组中的所有对象在属性’value’中都有值.

我想我可以用forEach循环来做,但有没有比这更好的方法?

var isTrue = true;
angular.forEach(objectArray, function(o){
  if (!o.Value){
    isTrue = false; // change variable 'isTrue' to false if no value
  }
});
最佳答案
如果0不计算,只需使用Array#every().

var $scope = { objectArray: [{ Title: 'object1', Description: 'lorem', Value: 57 }, { Title: 'object2', Description: 'ipsum', Value: 32 }, { Title: 'object3', Description: 'dolor', Value: 135 }] },
    isTrue = $scope.objectArray.every(function (a) {
        return a.Value;
    });

document.write(isTrue);

测试0作为值的解决方案.

var $scope = { objectArray: [{ Title: 'object1', Description: 'lorem', Value: 0 }, { Title: 'object2', Description: 'ipsum', Value: 32 }, { Title: 'object3', Description: 'dolor', Value: 135 }] },
    isTrue = $scope.objectArray.every(function (a) {
        return a.Value || a.Value === 0;
    });

document.write(isTrue);

转载注明原文:javascript – 如果数组中的所有对象在属性中都有值,则返回true - 代码日志