You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
871 B
JavaScript
31 lines
871 B
JavaScript
9 years ago
|
var baseSlice = require('../internal/baseSlice'),
|
||
|
isIterateeCall = require('../internal/isIterateeCall');
|
||
|
|
||
|
/**
|
||
|
* Creates a slice of `array` from `start` up to, but not including, `end`.
|
||
|
*
|
||
|
* **Note:** This method is used instead of `Array#slice` to support node
|
||
|
* lists in IE < 9 and to ensure dense arrays are returned.
|
||
|
*
|
||
|
* @static
|
||
|
* @memberOf _
|
||
|
* @category Array
|
||
|
* @param {Array} array The array to slice.
|
||
|
* @param {number} [start=0] The start position.
|
||
|
* @param {number} [end=array.length] The end position.
|
||
|
* @returns {Array} Returns the slice of `array`.
|
||
|
*/
|
||
|
function slice(array, start, end) {
|
||
|
var length = array ? array.length : 0;
|
||
|
if (!length) {
|
||
|
return [];
|
||
|
}
|
||
|
if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
|
||
|
start = 0;
|
||
|
end = length;
|
||
|
}
|
||
|
return baseSlice(array, start, end);
|
||
|
}
|
||
|
|
||
|
module.exports = slice;
|