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 isIndex from './.internal/isIndex.js'
lodash源码分析之isIndex
nth 用来获取数组中指定索引的值,如果指定的索引为负数,则索引值是从后往前数。
nth
function nth(array, n) { const length = array == null ? 0 : array.length if (!length) { return } n += n < 0 ? length : 0 return isIndex(n, length) ? array[n] : undefined }
首先获取数组的长度,如果没有传入数组,则默认 length 是 0 ,如果 length 是 0 ,表示没有元素,则返回 undefined 。
length
0
undefined
n += n < 0 ? length : 0
然后判断要获取的索引是否在 length 的范围内,如果在数组最大长度的范围内,则使用 array[n] 获取对应索引的值,否则返回 undefined。
array[n]
可以看到 nth 的核心就是 array[n],只不过它支持负数的索引,也对索引值的合法性做了校验。
署名-非商业性使用-禁止演绎 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源码分析之isIndex
源码分析
nth
用来获取数组中指定索引的值,如果指定的索引为负数,则索引值是从后往前数。首先获取数组的长度,如果没有传入数组,则默认
length
是0
,如果length
是0
,表示没有元素,则返回undefined
。然后判断要获取的索引是否在
length
的范围内,如果在数组最大长度的范围内,则使用array[n]
获取对应索引的值,否则返回undefined
。可以看到
nth
的核心就是array[n]
,只不过它支持负数的索引,也对索引值的合法性做了校验。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: