2016-01-11 42 views
0
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

那么,'allStatuses'是一组包含'true','false'值的数组? – AdamJeffers

+1

你可以发布你的实际代码吗? –

+1

每个数组至少包含一个false?或者所有的错误? –

回答

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

请确定最佳答案! +1 – AdamJeffers

+0

让我们[在聊天中继续讨论](http://chat.stackoverflow.com/rooms/100392/discussion-between-emporio-and-alexander)。 – mdarmanin

3

最短,最语义版本将是:

allStatuses.every(a => !a.some(Boolean)) 

或者没有箭头的功能:

allStatuses.every(function(a) { return !a.some(Boolean); }) 

英文:

数组中allStatuses不应该有一些(任意)真值。

相关问题