我想捕获字符串中是否包含某个值。我有一个有限的值列表,要与逗号分隔的可变长度字符串(可能为 400 个字符长)相匹配。字符串的任何出现都只会出现一次,不会有任何重复项,字符串中也不会出现静态列表项的两个实例,例如,字符串永远不会同时包含“Poor”和“Ultimate”。
静态项目列表
差 公平 好 更好 最好 终极
要搜索的字符串
Cake,Good,Pickles,System,Tires
我意识到我可以使用indexOf和一堆IF语句,但我想知道是否有更好的方法,比如将我的静态列表分配给一个数组
var myList=new Array [“Poor”, “Fair”, “Good”, “Better”, “Best”, “Ultimate”];
我不知道如何循环遍历数组和字符串以返回找到的值,例如本例中的“Good”。做到这一点的最佳方法是什么 - 最好定义为最有效、最快和最容易维护(假设这些不矛盾)?
谢谢
最佳答案
是的,我认为你的做法是正确的。看:
var myList= ["Poor", "Fair", "Good", "Better", "Best", "Ultimate"];
var stringList = "Cake,Good,Pickles,System,Tires";
for (var i = 0; i < myList.length; i++)
{
if (stringList.indexOf(myList[i]) > -1)
{
window.alert("Contains: " + myList[i]);
break;
}
}
Demo .
如果您确定这些值将匹配,并且不需要对列表中的该字符串进行任何验证,则可以使用简单的循环 - in vanilla js - 将工作。快速、高效且易于维护。
关于javascript - 查找字符串中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840367/