Javascript 检查数组是否包含字符串的一部分和索引#

Javascript 检查数组是否包含字符串的一部分和索引#,javascript,jquery,Javascript,Jquery,我想知道如何检查数组是否包含字符串的一部分和索引# 在线查看,但索引#不显示位置,除非它是数组中的全名 myArr = ["blue", "red", "orange", "green"] 您可以使用检查是否至少有一个元素验证您的条件: alert(className.indexOf("oran")); 如果需要索引,则反向for循环是更简单的解决方案: var hasSome = myArr.some(function(v){ return v.indexOf("oran")>=0

我想知道如何检查数组是否包含字符串的一部分和索引#

在线查看,但索引#不显示位置,除非它是数组中的全名

myArr = ["blue", "red", "orange", "green"]
您可以使用检查是否至少有一个元素验证您的条件:

alert(className.indexOf("oran"));
如果需要索引,则反向
for
循环是更简单的解决方案:

var hasSome = myArr.some(function(v){ return v.indexOf("oran")>=0 })
在循环之后,
i
-1
如果没有匹配的元素,那么如果有匹配的元素,它就是它的索引

注意,在ES6(JavaScript的下一个版本)中,数组上有
find
findIndex
方法,字符串上有
contains
方法,这意味着您可以

for (var i=myArr.length; i--;) {
     if (myArr[i].indexOf("oran")>=0) break;
}

是否有理由认为
v.indexOf(“oran”)>=0
v.indexOf(“oran”)>-1
相反?@DavidThomas并非如此。但是我不明白为什么要使用
-1
。老实说,我可能会在我自己的代码中使用̀
~v.indexOf(“oran”)
/oran/.test(v)
。也许dystroy害怕-。这两种方式都是一样的。这是合理的,我并没有把它当作批评,我只是好奇是否有优化的理由;部分原因是我偶然学会了JS,所以内部的工作原理仍然是个谜。哎,答案怎么了?
var i = myArr.findIndex(v ==> v.contains("oran"));