假设我有这个数组:
var a = [1,2,99,3,4,99,5];
我想得到第二个 99
的位置,比如:
a.indexOf(99, 2) // --> 5
但是 indexOf
中的第二个参数只是告诉从哪里开始搜索。是否有任何内置函数可以做到这一点?如果不是,你会怎么做?
谢谢!
最佳答案
只有 indexOf
和 lastIndexOf
。你可以遍历它:
var a = [1,2,99,3,4,99,5];
var matches = []
for (var i=0; i<a.length; i++){
if (a[i] == 99) {
matches.push(i)
}
}
console.log(matches); // [2, 5]
如果你总是想要第二次出现,Jan 的方法也不错:
a.indexOf(99, a.indexOf(99) + 1)
右边的 indexOf
调用找到第一个出现的地方,+1
然后将搜索限制在它后面的元素。
关于javascript - 如何获取第二次出现的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479621/