关于jquery:Javascript – indexOf不那么具体

Javascript - indexOf not so specific

有没有办法降低指数的敏感性?这样地

1
2
var arr = ["Hello","stackoverflow"]
var idx = arr.indexOf("stack")

得到idx=1而不是idx=-1


你必须为此编写自己的函数。类似这样的事情会奏效:

1
2
3
4
5
6
7
function searchArr(arr, str) {
    for (var i=0;i<arr.length;i++) {
        if (arr[i].indexOf(str) !== -1) return i;
    }
    return -1;
}
searchArr(arr, 'stack');// returns 1

这只需遍历作为第一个参数输入的数组,并一直进行,直到找到一个索引,其中该索引处的数组值包含搜索字符串。


下面将返回一个由true和false组成的数组,显示哪些数组元素与"stack"匹配。

1
2
var arr = ["Hello","stackoverflow"];
var idx =arr.map(function(s) {return s.indexOf("stack") !== -1});

如果只想检查是否存在匹配项,可以使用

1
2
var arr = ["Hello","stackoverflow"];
var matchFound =arr.some(function(s) {return s.indexOf("stack") !== -1});