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