数组的匹配值与 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");
}
我正在尝试使用以下代码将字符串与数组进行比较:
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");
}