javascript数组|如果值包含字符串,则返回索引
我有一个字符串数组javascript数组|如果值包含字符串,则返回索引,javascript,arrays,Javascript,Arrays,我有一个字符串数组stringsArr,还有一个字符串myString。我想找到数组的第一个索引,其值为euqalmyString或包含myString 我知道indexOf()方法,但不幸的是,只有当value等于myString时,它才起作用。我在谷歌上搜索了文档,但没有找到任何合适的内容,所以决定在这里询问我是否遗漏了一些内容。您想使用和自定义谓词,如: stringsArr.findIndex(function (str) { return (str === myString ||
stringsArr
,还有一个字符串myString
。我想找到数组的第一个索引,其值为euqalmyString
或包含myString
我知道indexOf()方法,但不幸的是,只有当value等于myString
时,它才起作用。我在谷歌上搜索了文档,但没有找到任何合适的内容,所以决定在这里询问我是否遗漏了一些内容。您想使用和自定义谓词,如:
stringsArr.findIndex(function (str) {
return (str === myString || str.indexOf(myString) > -1);
});
如果您使用的环境(/browser)不提供findIndex
,MDN页面将包含一个很好的短polyfill。您要使用的自定义谓词,如:
stringsArr.findIndex(function (str) {
return (str === myString || str.indexOf(myString) > -1);
});
如果您使用的环境(/browser)不提供
findIndex
,MDN页面将包含一个漂亮的短多边形填充。indexOf
可能是您想要的,但在字符串上使用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);
var tested=['foot','bark','foo','cat'];
变量匹配='foo';
对于(变量i=0;i-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".
var tested=['foot','bark','foo','cat'];
变量匹配='foo';
var指数=-1;
对于(变量i=0;i-1){
指数=i;
打破
}
}
console.log(索引);//0,因为“foot”包括“foo”。
indexOf
可能是您想要的,但是在字符串上使用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);
var tested=['foot','bark','foo','cat'];
变量匹配='foo';
对于(变量i=0;i-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".
var tested=['foot','bark','foo','cat'];
变量匹配='foo';
var指数=-1;
对于(变量i=0;i-1){
指数=i;
打破
}
}
console.log(索引);//0,因为“foot”包括“foo”。
您忘了提到-es2015。这是一个不错的解决方案,但对于太多的浏览器仍然不起作用:)下一个项目将使用babel编写,因此将使用它来sure@Kania检查MDN页面中的polyfill。您可以将findIndex
添加到所有当前浏览器中,并在今天使用它。不幸的是,在现有代码中,添加多边形填充不是一个选项:D期待新项目!感谢您展示此解决方案!您忘了提到-es2015。这是一个不错的解决方案,但对于太多的浏览器仍然不起作用:)下一个项目将使用babel编写,因此将使用它来sure@Kania检查MDN页面中的polyfill。您可以将findIndex
添加到所有当前浏览器中,并在今天使用它。不幸的是,在现有代码中,添加多边形填充不是一个选项:D期待新项目!感谢您展示此解决方案!我在寻找'foobar'和'foo',但indexOf只返回'foo'很好,谢谢,但我自己的解决方案我已经有了,问题是关于JavaScript解决方案中存在的,就像前面提到的findIndex()。我在寻找'foobar'和'foo',但indexOf只返回'foo'很好,谢谢,但我自己的解决方案我已经有了,问题是关于JavaScript解决方案中存在的问题,如前面提到的findIndex()。