js中的indexOf 和 lastIndexOf 详解

2020-07-14  本文已影响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

周倩你明白了嘛

上一篇下一篇

猜你喜欢

热点阅读