console.log(allStatuses);
此变量返回两个数组:
[true, false, false, false, false]
[true, false, false, true, false]
有时会返回更多数组,其值为true/false
。
我想检查所有返回的数组是否包含false
,如果是,请执行某些操作。
完成这项工作的最佳方法是什么?
以下是负责的代码:
angular.forEach($scope.prefAccount, function(account){
if (typeof account === 'object') {
var allStatuses = [];
angular.forEach(account, function(alertStatus){
return allStatuses.push(alertStatus.enabled);
})
console.log(allStatuses);
}
});
答案 0 :(得分:6)
您可以使用.every
和.concat
(从二维创建一维数组)
var allStatuses = [
[true, false, false, false, false],
[true, false, false, true, false]
]
allStatuses = [].concat.apply([], allStatuses);
var isFalse = allStatuses.every(function (el) {
return el === false;
})
console.log(isFalse);
答案 1 :(得分:3)
最短,最语义的版本是:
allStatuses.every(a => !a.some(Boolean))
或没有箭头功能:
allStatuses.every(function(a) { return !a.some(Boolean); })
英文:
allStatuses
中的每个数组都不应该有某些(任意)的真值。