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