检查所有回复是否都是错误

时间:2016-01-11 15:28:50

标签: javascript arrays

我想检查返回的所有语句是否都是false。看看下面的代码:

angular.forEach($scope.preferencesAccount, function(account){
    //console.log(account);
    if (typeof account === 'object') {
        var allStatuses = [];  
        angular.forEach(account, function(alertStatus){
            console.log(alertStatus.enabled);
        })                        
    }                    
})

alertstatus.enabled返回以下内容: enter image description here

我想检查返回的所有值是否为false,以便我可以执行某些操作。最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

为什么不直接遍历enabled并检查长度是否与alertStatuses相同:

angular.forEach($scope.preferencesAccount, function(account){
    //console.log(account);
    if (typeof account === 'object') {
        var allStatuses = [];  
        var falseCounter = 0;
        angular.forEach(account, function(alertStatus){
            console.log(alertStatus.enabled);
            if(!alertStatus.enabled)
                 falseCounter++;

        })    
        if(falseCounter === account.length)
        {
            // handle when all are false
        }                    
    }                    
})

答案 1 :(得分:0)

假设您在阵列中拥有所有响应,请使用:

if( responses.every(function( response ) { return !response }) ) {
    // ...
}

如果您出于个人目的而这样做并且不关心与其他浏览器的兼容性,则可以使用此快捷方式(但如果您使用它,请不要使用它#39 ;为其他人写这个

假设您将所有响应都放入数组中,您可以像这样检查它......

if( responses.every( response => !response ) ) {
    // ...
}

答案 2 :(得分:-1)

你可以使用Array.every

[false, false, false].every(function (x) {
    return !x;
});

这将返回true