本文为读 lodash 源码的第三百三十六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
import baseIndexOf from './baseIndexOf.js'
charsEndIndex
是一个内部方法,会在 trim
和 trimEnd
中使用,作用是找出 strSymbols
字符串数组中,从后往前数,第一个不在 charSymbols
字符串数组中出现的字符的位置。
源码如下:
function charsEndIndex(strSymbols, chrSymbols) {
let index = strSymbols.length
while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
return index
}
先将 index
初始化为 strSymbols
的长度, while
循环中使用的是 index--
,即从 strSymbols
后面向前面遍历,在循环过程中,调用 baseIndexOf
检测当前位置的字符串是否在 chrSymbols
中,当出现第一个不存在的字符串时,即停止遍历。
此时的位置即从后往前数,第一个不出现在 charSymbols
的位置。
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面