diff options
Diffstat (limited to 'node_modules/lodash/slice.js')
-rw-r--r-- | node_modules/lodash/slice.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/lodash/slice.js b/node_modules/lodash/slice.js new file mode 100644 index 0000000..f732442 --- /dev/null +++ b/node_modules/lodash/slice.js @@ -0,0 +1,37 @@ +var baseSlice = require('./_baseSlice'), + isIterateeCall = require('./_isIterateeCall'), + toInteger = require('./toInteger'); + +/** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @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 == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } + else { + start = start == null ? 0 : toInteger(start); + end = end === undefined ? length : toInteger(end); + } + return baseSlice(array, start, end); +} + +module.exports = slice; |