数组的匹配值与 javascript 中的位置无关

Matching value of an array regardless of position in javascript

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

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;
});

此方法 returns 如果至少一个元素返回 true,则为 true,那么您可以应用您的逻辑:

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

希望对您有所帮助。

var str = "LV00000";
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");
    break ;
   }
   if(i==len-1)  document.write("NO");
}