lodash源码分析之strictLastIndexOf

本文为读 lodash 源码的第四十九篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash

gitbook也会同步仓库的更新,gitbook地址:pocket-lodash

源码分析

strictLastIndexOfstrictIndexOf 的作用类似,都是找出指定的某个值在数组中的 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 的位置处开始遍历。

相关链接

《lodash源码分析之strictIndexOf》

License

署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)

最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:

作者:对角另一面

results matching ""

    No results matching ""