javascript数组|如果value包含字符串,则返回索引

时间:2016-03-14 15:59:33

标签: javascript arrays

我有一个字符串数组stringsArr,我还有一个字符串myString。我想找到我的数组的第一个索引,其值为euqal myString或包含myString

我知道方法indexOf(),但不幸的是,只有当值等于myString时才有效。我通过文档搜索,但没有找到合适的内容,所以决定在这里问一下我是不是错过了什么。

2 个答案:

答案 0 :(得分:3)

您想使用findIndex和自定义谓词,如:

stringsArr.findIndex(function (str) {
  return (str === myString || str.indexOf(myString) > -1);
});

如果您使用的是不提供findIndex的环境(/浏览器),则MDN页面会包含一个很好的短填充。

答案 1 :(得分:1)

indexOf可能是您想要的,但在String:

上使用indexOf
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".