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