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;
 |