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 slice from './slice.js'
《读lodash源码之从slice看稀疏数组与密集数组》
takeRight 的作用跟 take 差不多,只不过 takeRight 是截取数组后面的 n 个元素作为新的数组返回。
takeRight
take
n
源码如下:
function takeRight(array, n=1) { const length = array == null ? 0 : array.length if (!length) { return [] } n = length - n return slice(array, n < 0 ? 0 : n, length) }
因为是从后截取,所以 slice 的第三个参数 end 很容易就确定为 length,即数组的长度。
slice
end
length
那第二个参数 start 是什么呢?因为是截取 n 个元素,所以 start 也很容易知道为 length - n 。
start
length - n
此时还要处理 length - n 小于 0 的情况,这种情况下,截取的元素数量超出是 array 的范围,在这种情况下,只能将 array 的所有元素都返回,也即 start 为 0 。
0
array
署名-非商业性使用-禁止演绎 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源码之从slice看稀疏数组与密集数组》
源码分析
takeRight
的作用跟take
差不多,只不过takeRight
是截取数组后面的n
个元素作为新的数组返回。源码如下:
因为是从后截取,所以
slice
的第三个参数end
很容易就确定为length
,即数组的长度。那第二个参数
start
是什么呢?因为是截取n
个元素,所以start
也很容易知道为length - n
。此时还要处理
length - n
小于0
的情况,这种情况下,截取的元素数量超出是array
的范围,在这种情况下,只能将array
的所有元素都返回,也即start
为0
。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: