本文为读 lodash 源码的第九十三篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
import slice from './slice.js'
takeRight
的作用跟 take
差不多,只不过 takeRight
是截取数组后面的 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
,即数组的长度。
那第二个参数 start
是什么呢?因为是截取 n
个元素,所以 start
也很容易知道为 length - n
。
此时还要处理 length - n
小于 0
的情况,这种情况下,截取的元素数量超出是 array
的范围,在这种情况下,只能将 array
的所有元素都返回,也即 start
为 0
。
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面