Files
lodash/.internal/baseSlice.js
2017-02-18 23:31:42 +01:00

32 lines
742 B
JavaScript

/**
* The base implementation of `slice` without an iteratee call guard.
*
* @private
* @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 baseSlice(array, start, end) {
let index = -1,
length = array.length
if (start < 0) {
start = -start > length ? 0 : (length + start)
}
end = end > length ? length : end
if (end < 0) {
end += length
}
length = start > end ? 0 : ((end - start) >>> 0)
start >>>= 0
const result = Array(length)
while (++index < length) {
result[index] = array[index + start]
}
return result
}
export default baseSlice