js中的indexOf 和 lastIndexOf 详解

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

周倩你明白了嘛

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容