You can not 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
				
				864 B
			
		
		
			
		
	
	
					31 lines
				
				864 B
			| 
											3 years ago
										 | var baseRange = require('./_baseRange'), | ||
|  |     isIterateeCall = require('./_isIterateeCall'), | ||
|  |     toFinite = require('./toFinite'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a `_.range` or `_.rangeRight` function. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {boolean} [fromRight] Specify iterating from right to left. | ||
|  |  * @returns {Function} Returns the new range function. | ||
|  |  */ | ||
|  | function createRange(fromRight) { | ||
|  |   return function(start, end, step) { | ||
|  |     if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { | ||
|  |       end = step = undefined; | ||
|  |     } | ||
|  |     // Ensure the sign of `-0` is preserved.
 | ||
|  |     start = toFinite(start); | ||
|  |     if (end === undefined) { | ||
|  |       end = start; | ||
|  |       start = 0; | ||
|  |     } else { | ||
|  |       end = toFinite(end); | ||
|  |     } | ||
|  |     step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); | ||
|  |     return baseRange(start, end, step, fromRight); | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = createRange; |