40 lines
		
	
	
		
			890 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			890 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var baseClamp = require('./_baseClamp'), | ||
|  |     toNumber = require('./toNumber'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Clamps `number` within the inclusive `lower` and `upper` bounds. | ||
|  |  * | ||
|  |  * @static | ||
|  |  * @memberOf _ | ||
|  |  * @since 4.0.0 | ||
|  |  * @category Number | ||
|  |  * @param {number} number The number to clamp. | ||
|  |  * @param {number} [lower] The lower bound. | ||
|  |  * @param {number} upper The upper bound. | ||
|  |  * @returns {number} Returns the clamped number. | ||
|  |  * @example | ||
|  |  * | ||
|  |  * _.clamp(-10, -5, 5); | ||
|  |  * // => -5
 | ||
|  |  * | ||
|  |  * _.clamp(10, -5, 5); | ||
|  |  * // => 5
 | ||
|  |  */ | ||
|  | function clamp(number, lower, upper) { | ||
|  |   if (upper === undefined) { | ||
|  |     upper = lower; | ||
|  |     lower = undefined; | ||
|  |   } | ||
|  |   if (upper !== undefined) { | ||
|  |     upper = toNumber(upper); | ||
|  |     upper = upper === upper ? upper : 0; | ||
|  |   } | ||
|  |   if (lower !== undefined) { | ||
|  |     lower = toNumber(lower); | ||
|  |     lower = lower === lower ? lower : 0; | ||
|  |   } | ||
|  |   return baseClamp(toNumber(number), lower, upper); | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = clamp; |