javascript - 无论javascript中的位置如何,数组的匹配值

标签 javascript arrays indexof

我正在尝试使用以下代码将字符串与数组进行比较:

var str = "ML00000";
var arr = ["MC", "CV", "ML", "LV"];
for (var i = 0, len = arr.length; i < len; ++i) 
{
   if (str.indexOf(arr[i]) != -1) 
   {
    document.write("YES");
   }
   else
   {
   document.write("NO");
   }    
}

当前正在返回“NO NO YES NO”——当找到匹配的字符串时,我希望输出为 YES 或 NO。

如有任何帮助,我们将不胜感激!

谢谢 - 马特

最佳答案

您可以使用 Array.some() :

var exists = arr.some(function(item) {
    return str.indexOf(item) != -1;
});

如果至少有一个元素返回 true,则此方法返回 true,然后您可以应用您的逻辑:

if (exists) {
    document.write("YES");
}
else {
   document.write("NO");
}  

希望对您有所帮助。

关于javascript - 无论javascript中的位置如何,数组的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088142/

相关文章:

php - 在 PHP 中解析 javascript 数组

JavaScript 遍历数组,删除每个值的重复项,然后使用该值和另一个值推送到新数组

javascript - 我需要直接在右侧使用提交按钮对电子邮件输入进行编码(包括图像)

javascript - 由于 socket.io 无法构建 JMVC 应用程序

javascript - 图像作为 html Canvas 的模板

JavaScript filter() 结果在回调中始终为空?

javascript - 如何选择边界内的元素?

arrays - 如何将序列化的 JSON View 数据输出为对象数组,而不是包装在外部对象中?

java - 在随机排序的 ArrayList 中将特定元素与其上面的元素交换

jquery 元素中的 javascript indexof