_baseRange.js (850B)
1 /* Built-in method references for those with the same name as other `lodash` methods. */ 2 var nativeCeil = Math.ceil, 3 nativeMax = Math.max; 4 5 /** 6 * The base implementation of `_.range` and `_.rangeRight` which doesn't 7 * coerce arguments. 8 * 9 * @private 10 * @param {number} start The start of the range. 11 * @param {number} end The end of the range. 12 * @param {number} step The value to increment or decrement by. 13 * @param {boolean} [fromRight] Specify iterating from right to left. 14 * @returns {Array} Returns the range of numbers. 15 */ 16 function baseRange(start, end, step, fromRight) { 17 var index = -1, 18 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), 19 result = Array(length); 20 21 while (length--) { 22 result[fromRight ? length : ++index] = start; 23 start += step; 24 } 25 return result; 26 } 27 28 module.exports = baseRange;