UNPKG

754 BJavaScriptView Raw
1/**
2 * The base implementation of `_.slice` without an iteratee call guard.
3 *
4 * @private
5 * @param {Array} array The array to slice.
6 * @param {number} [start=0] The start position.
7 * @param {number} [end=array.length] The end position.
8 * @returns {Array} Returns the slice of `array`.
9 */
10function baseSlice(array, start, end) {
11 var index = -1,
12 length = array.length;
13
14 if (start < 0) {
15 start = -start > length ? 0 : (length + start);
16 }
17 end = end > length ? length : end;
18 if (end < 0) {
19 end += length;
20 }
21 length = start > end ? 0 : ((end - start) >>> 0);
22 start >>>= 0;
23
24 var result = Array(length);
25 while (++index < length) {
26 result[index] = array[index + start];
27 }
28 return result;
29}
30
31export default baseSlice;