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