美文网首页
js中的indexOf 和 lastIndexOf 详解

js中的indexOf 和 lastIndexOf 详解

作者: 小悟空大仙人 | 来源:发表于2020-07-14 07:42 被阅读0次
    let arr = [0,1,2,1,3,1,4,5]
    let index = arr.indexOf(1,0)
    let lastindex = arr.lastIndexOf(1,0)
    let lastindex2 = arr.lastIndexOf(1,arr.length-1)
    console.log(index) // 1
    console.log(lastindex) //-1
    console.log(lastindex2) // 5
    

    indexOf 和 lastIndexOf 都接收两个参数(查找项/查找起点位置的索引)
    indexOf 是查首次出现的位置(索引值)(从左往右)
    lastIndexOf 是查最后一次出现的位置(索引值)(从右往左)

    lastIndexOf()方法虽然是从右往左搜索,但返回的位置是从左往右数的
    重点看第二个参数 lastIndexOf 的第二个参数的合法范围是 0 - (arr.length - 1)

    arr.lastIndexOf(1,0) 语义化就是 --> 在arr中 查找 值为 1 的项,
    从arr的第0项为起点 从右往左查找 返回数组从左往右的符合项的最后一项的索引
    注意这个 [从arr的第0项为起点 从右往左查找] 那其实查找的数组就是 [0]

    arr.lastIndexOf(1,arr.length-1) --> 等同于 arr.lastIndexOf(1,7)
    语义化就是 --> 在arr中 查找 值为 1 的项,从arr的第7项为起点
    从右往左查找 返回数组从左往右的符合项的最后一项的索引
    这里要注意这个 [返回数组从左往右的符合项的最后一项的索引] 这里最后一项 是按照数组从左往右的最后一项
    查找的数组内容就是 [0,1,2,1,3,1,4,5]
    查找的顺序 5 -> 4 -> 1(符合) /-* 没有查到相关资料描述 找到符合项 会不会继续查找 *-/
    1 符合 然后返回 该项的 索引 (从左往右的索引)
    返回索引 5
    也就是 索引为 5 的 数组项1

    周倩你明白了嘛

    相关文章

      网友评论

          本文标题:js中的indexOf 和 lastIndexOf 详解

          本文链接:https://www.haomeiwen.com/subject/tmathktx.html