JS 在数组中搜索
JS search in array
最初,问题是我必须得到一些通知,当用户在 JqueryUI 自动完成中输入的术语(项目中的城市名称)与集合中的任何内容不匹配(输入 "My Sweet City" 并且它不匹配[莫斯科、纽约、北京])。所以我将重写我的代码以在数组中手动搜索,但我有一个问题 — 如何像自动完成一样在数组中搜索呢?
有几种方法可以做到这一点。如果它很简单,您可以使用 indexOf
来找到这样的匹配项:
var arr = ["one", "two", "three", "four", "five"];
var inputText = "three";
if (arr.indexOf(inputText) > -1) {
alert("item found");
}
else {
alert("item not found");
}
另一种选择(也是更有效的选择)是使用正则表达式并循环遍历数组以查找匹配项(Aleadam 提到):
function searchStringInArray (str, strArray) {
for (var j=0; j<strArray.length; j++) {
if (strArray[j].match(str)) return j;
}
return -1;
}
最初,问题是我必须得到一些通知,当用户在 JqueryUI 自动完成中输入的术语(项目中的城市名称)与集合中的任何内容不匹配(输入 "My Sweet City" 并且它不匹配[莫斯科、纽约、北京])。所以我将重写我的代码以在数组中手动搜索,但我有一个问题 — 如何像自动完成一样在数组中搜索呢?
有几种方法可以做到这一点。如果它很简单,您可以使用 indexOf
来找到这样的匹配项:
var arr = ["one", "two", "three", "four", "five"];
var inputText = "three";
if (arr.indexOf(inputText) > -1) {
alert("item found");
}
else {
alert("item not found");
}
另一种选择(也是更有效的选择)是使用正则表达式并循环遍历数组以查找匹配项(Aleadam 提到):
function searchStringInArray (str, strArray) {
for (var j=0; j<strArray.length; j++) {
if (strArray[j].match(str)) return j;
}
return -1;
}