lodash 源码解读 _.dropRight(array, num)
作用是切割数组,按 num 个数进行切割。
举例:_.dropRight([1,2,3], 5) return []; _.dropRight([1,2,3,4], 2) return [1,2]
function dropRight(array, n, guard) { //第三个参数可为函数,例如_.map 循环 var length = array == null ? 0 : array.length; if (!length) { return []; } n = (guard || n === undefined) ? 1 : toInteger(n); n = length - n; return baseSlice(array, 0, n < 0 ? 0 : n); //参数为 (array, start, end) }
在 baseSlice 中出现一个知识点>>>,这个意义为二进制数右移,并且向下取整
4>>>1 // 2 5>>>1 //2 6>>>1 //2
>>>0 为所有非数值转换为0, 大于等于0的,取其整数部分
参考 https://www.zhihu.com/question/20693429