3.2 initial
3.2.1语法
_.initaila(array, [n]);
3.2.2说明
array中排除最后一个元素,或最后n个元素,然后返回数组。
3.2.3示例
示例一:基本用法
var array = [1, 2, 3, 4];
//排除最后一个元素
_.initial(array); //=> [1, 2, 3]
//排除最后n个元素
_.initial(array, 2); //=> [1, 2]
//使用_.first排除最后一个
_.first(array, -1); //=> [1, 2, 3]
//使用原生方法排除最后一个
array.slice(0, -1); //=> [1, 2, 3]
示例二:传了第二个参数n
var array = [1, 2, 3, 4];
// n < 0
_.initial(array, -1); //=> [1, 2, 3, 4]
// n === 0
_.initial(array, 0); //=> [1, 2, 3, 4]
// n > 0
_.initial(array, 2); //=> [1, 2]
// n > 数组长度时
_.initial(array, 10); //=> []
3.2.4 源码展示
_.initial = function(array, n, guard) {
//使用数组的slice方法
return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
};
3.2.5 隐藏的第三个参数
//传了true之后,只去除数组最后一个元素,n失效。
_.initial([1, 2, 3, 4], 3, true); //=> [1, 2, 3]
_.initial([1, 2, 3, 4], 0, true); //=> [1, 2, 3]
_.initial([1, 2, 3, 4], 5, true); //=> [1, 2, 3]
3.2.6 别传特殊的值
_.initial(null); //Cannot read property 'length' of null