We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本文为读 lodash 源码的第三百三十六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
import baseIndexOf from './baseIndexOf.js'
《lodash源码分析之baseIndexOf》
charsEndIndex 是一个内部方法,会在 trim 和 trimEnd 中使用,作用是找出 strSymbols 字符串数组中,从后往前数,第一个不在 charSymbols 字符串数组中出现的字符的位置。
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 中,当出现第一个不存在的字符串时,即停止遍历。
index
while
index--
baseIndexOf
chrSymbols
此时的位置即从后往前数,第一个不出现在 charSymbols 的位置。
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered:
No branches or pull requests
本文为读 lodash 源码的第三百三十六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
依赖
《lodash源码分析之baseIndexOf》
源码分析
charsEndIndex
是一个内部方法,会在trim
和trimEnd
中使用,作用是找出strSymbols
字符串数组中,从后往前数,第一个不在charSymbols
字符串数组中出现的字符的位置。源码如下:
先将
index
初始化为strSymbols
的长度,while
循环中使用的是index--
,即从strSymbols
后面向前面遍历,在循环过程中,调用baseIndexOf
检测当前位置的字符串是否在chrSymbols
中,当出现第一个不存在的字符串时,即停止遍历。此时的位置即从后往前数,第一个不出现在
charSymbols
的位置。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: