| /* Built-in method references for those with the same name as other `lodash` methods. */ |
| var nativeCeil = Math.ceil, |
| nativeMax = Math.max; |
| |
| /** |
| * The base implementation of `_.range` and `_.rangeRight` which doesn't |
| * coerce arguments. |
| * |
| * @private |
| * @param {number} start The start of the range. |
| * @param {number} end The end of the range. |
| * @param {number} step The value to increment or decrement by. |
| * @param {boolean} [fromRight] Specify iterating from right to left. |
| * @returns {Array} Returns the range of numbers. |
| */ |
| function baseRange(start, end, step, fromRight) { |
| var index = -1, |
| length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), |
| result = Array(length); |
| |
| while (length--) { |
| result[fromRight ? length : ++index] = start; |
| start += step; |
| } |
| return result; |
| } |
| |
| module.exports = baseRange; |