lodash源码分析之strictLastIndexOf
本文为读 lodash 源码的第四十九篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
源码分析
strictLastIndexOf 和 strictIndexOf 的作用类似,都是找出指定的某个值在数组中的 index,所不同的是,strictIndexOf 是从前向后遍历,strictLastIndexOf 则是从后向前遍历。
源码如下:
function strictLastIndexOf(array, value, fromIndex) {
let index = fromIndex + 1
while (index--) {
if (array[index] === value) {
return index
}
}
return index
}
和 strictIndexOf 类似,strictLastIndexOf 也可以指定 fromIndex ,从 fromIndex 开始向前遍历。
遍历的终止条件是 while(index--) ,可以看到,这里是用 index-- 并不是用 --index,在终止遍历的时候,即 index-- 为 0 时,遍历终止,此时 index 的值为 -1 ,因此如果所传的 value 不在数组中时,最终返回的结果为 -1 。因为在一开始就需要将 index 减少 1 ,因此要从 fromIndex + 1 的位置处开始遍历。
相关链接
License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面