javascript - 如何测试关联数组中的所有值是否都为 true? (Javascript)

标签 javascript logic

关联数组:

var signUpStates = {
    "CNPJ": false,
    "PASSWORDS": false,
    "ADDRESS": false,
    "GENERAL_FIELDS": false,
    "TERMS": false,
}

我的尝试:

function updateButton() {
    var tempArray = []
    $.each(signUpStates, function(i, val) {
        tempArray.push(val);
    });
    if(tempArray.every(function(e, i, a) { return e == true; })) {
        $(".btn-cadastrar-fornecedor").attr('disabled', false);
    } else {
        $(".btn-cadastrar-fornecedor").attr('disabled', true);
    }
}

迭代它并单独检查是行不通的。进行此类测试的最佳方法是什么?

最佳答案

最直接的解决方案(如果您询问逻辑)是使用 for 循环:

var is = true;

for (var key in signUpStates) {
    if (!signUpStates[key]) {
        is = false;
        break;
    }
}

严格来说,正确的方法也是只检查自己的属性,如果您正在测试的对象可能继承其他对象的属性,这一点很重要:

var is = true;

for (var key in signUpStates) {
    if (signUpStates.hasOwnProperty(key) && !signUpStates[key]) {
        is = false;
        break;
    }
}

在像您这样的简单情况下,不需要进行此额外检查。

关于javascript - 如何测试关联数组中的所有值是否都为 true? (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923839/

相关文章:

javascript - 有没有办法在 Node 中同步执行多个 JavaScript 文件?

C 代码不起作用,但未显示错误

algorithm - 动态问题中的重叠子问题(硬币找零问题)

php - 如何使用ajax显示值

绑定(bind)内的 JavaScript setInterval

JavaScript 'for in' 语句给出不可预测的结果

javascript - AJAX提交后如何验证表单?

python - 一点数学和逻辑

jquery - 使用 jquery 在选项选择的基础上添加新的表单输入字段

python - 如何将摩根定律应用于解析的字符串? (转换字符串或使用解析操作)