javascript - 如何获取第二次出现的位置?

标签 javascript arrays position indexof

假设我有这个数组:

var a = [1,2,99,3,4,99,5];

我想得到第二个 99 的位置,比如:

a.indexOf(99, 2) // --> 5

但是 indexOf 中的第二个参数只是告诉从哪里开始搜索。是否有任何内置函数可以做到这一点?如果不是,你会怎么做?

谢谢!

最佳答案

只有 indexOflastIndexOf。你可以遍历它:

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/

相关文章:

javascript - 目录未创建

javascript - 单击按钮时转到 html 页面中的下一个位置 - jquery

cocoa - 无法访问 cocoa 中 NSArray 的属性

vector - 如何将矢量点从一个 LonLat 移动到 OpenLayers 中的另一个?我正在使用OSM

jquery 为什么我可以设置一个标签的位置而不是另一个?

ios:在其 super View 中居中 View

javascript - Stripe Checkout 与 Rails 中的自定义集成

javascript - 使用 GET 请求获取详细信息时,返回 401 错误

java - 分割字节数组以获取前 12 个字符和后 12 个字符(Java)

java - 关于不可变列表(由 Arrays.asList() 创建)