Javascript 查找包含给定字符串部分的元素索引

Javascript 查找包含给定字符串部分的元素索引,javascript,arrays,search,Javascript,Arrays,Search,我想在myArray中搜索“nana”,它应该返回“banana”元素的索引 我该怎么做 我有这个,但也许你有更聪明的方法 for(var i=0;i < myArray.length; i++){ if(myArray[i].indexOf("nana") !=-1) { return i; } } for(var i=0;is.indexOf(输入)!=-1); 控制台日志(输出)如果ES6没有问题,您可以使用array.prototype.findIndex和strin

我想在myArray中搜索“nana”,它应该返回“banana”元素的索引

我该怎么做

我有这个,但也许你有更聪明的方法

for(var i=0;i < myArray.length; i++){

    if(myArray[i].indexOf("nana") !=-1) { return i; }

}
for(var i=0;i
使用
findIndex

var input = "nana";
var output = myArray.findIndex( s => s.indexOf( input ) != -1 ); 
演示

var myArray=[“苹果”、“香蕉”、“樱桃”];
var input=“nana”;
var输出=myArray.findIndex(s=>s.indexOf(输入)!=-1);

控制台日志(输出)如果
ES6
没有问题,您可以使用
array.prototype.findIndex
string.prototype.includes

var myArray=[“苹果”、“香蕉”、“樱桃”];
var search=“nana”;
var index=myArray.findIndex(el=>el.includes(search));

控制台日志(索引)所有浏览器都支持以下代码:

用于
+
索引
var myArray=[“苹果”、“香蕉”、“樱桃”],
word=“娜娜”;
对于(变量i=0;i-1)
{
控制台日志(i)
打破
}

}
您可能有多个元素与该搜索条件匹配,在这种情况下,您可以使用
reduce
捕获所有元素

var myArray=[‘苹果’、‘香蕉’、‘樱桃’、‘芬娜’];
函数查找器(arr、str){
返回arr.reduce((p,c,i)=>{
如果(c.includes(str))p.push(i);
返回p;
}, []);
}

log(finder(myArray,'nana')请提供您所拥有的信息already@JonasW. 怎么用?我对
indexOf
很满意。在
includes
中发布您自己的答案,并告诉我们如何更好。我获取确切单词的技巧是在输入变量
var input=“nana”后添加空格。这样,你就可以确保你只得到一个单独的单词
nana
。谢谢,但我的目标是兼容几乎所有的浏览器名作为我的当前代码(我在你提出要求后添加了)@Kad,我在回答中包括了3种方式。这将是问题中包含的有用信息。你可以在我的帖子第三行找到问题。关于数组唯一性的部分。您没有包括该信息:)
var input = "nana";
var output = myArray.findIndex( s => s.indexOf( input ) != -1 );