我有一个字符串数组stringsArr
,我还有一个字符串myString
。我想找到我的数组的第一个索引,其值为euqal myString
或包含myString
。
我知道方法indexOf(),但不幸的是,只有当值等于myString
时才有效。我通过文档搜索,但没有找到合适的内容,所以决定在这里问一下我是不是错过了什么。
答案 0 :(得分:3)
您想使用findIndex
和自定义谓词,如:
stringsArr.findIndex(function (str) {
return (str === myString || str.indexOf(myString) > -1);
});
如果您使用的是不提供findIndex
的环境(/浏览器),则MDN页面会包含一个很好的短填充。
答案 1 :(得分:1)
indexOf
可能是您想要的,但在String:
var tested = ['foot','bark', 'foo','cat'];
var match = 'foo';
for(var i = 0; i < tested.length; i++)
if(tested[i].indexOf(match) > -1) console.log(i);
那将输出0和2。
获取实际索引:
var tested = ['foot','bark', 'foo','cat'];
var match = 'foo';
var index = -1;
for(var i = 0; i < tested.length; i++) {
if(tested[i].indexOf(match) > -1) {
index = i;
break;
}
}
console.log(index); // 0, as "foot" includes "foo".