嗨,我正在使用 jquery 开发 MVC4 应用程序。我的代码中有以下数组。这比较数组中的所有元素是否相等。如果数组相等则返回 true,否则返回 false。 这是我的代码。
var list = new Array();
$('input[id=Status]').each(function (i, item) {
list.push($(item).val().trim());
});
var statusCheck=!!list.reduce(function(a, b){ return (a === b) ? a : NaN; });
if(statusCheck==true)
{
fun_toastr_notify('success', 'Please verify the documents');
e.preventDefault();
}
I expect the result as below. I want to return true only when all the elemets in the array are equal to "Not Verified".
var list = ["Not Verified", "Not Verified", "Not Verified"] => result: "true"
var list = ["Verified", "Verified", "Verified"] => result: "false"
var list = ["Not Verified", "Verified"] => result: "false"
但是,仅当所有元素都相等并且每个元素应等于特定字符串(例如“未验证”)时,我才想返回 true。我想对特定字符串进行比较。例如,如果所有列表元素都等于“已验证”,则它返回 true,但我希望仅当所有元素都等于特定字符串“未验证”时才会发生这种情况。我尝试如下。
var statusCheck=!!list.reduce(function(a, b){ return (a.val=='Not Verified' === b.val=='Not Verified') ? a : NaN; });
当列表的元素被“验证”时,上面的代码行返回 true。
有人可以告诉我一些宝贵的建议吗?感谢您抽出时间。
最佳答案
在我看来你需要使用Array.prototype.every
:
["Not Verified", "Not Verified", "Not Verified"].every(function (value) { return value === "Not Verified"}); // true
["Verified", "Verified", "Verified"].every(function (value) { return value === "Not Verified"}); // false
["Not Verified", "Verified"].every(function (value) { return value === "Not Verified"}); // false
关于javascript - 如何检查jquery数组中的所有值是否等于一个指定的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624969/