time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

clamp.js (890B)


      1 var baseClamp = require('./_baseClamp'),
      2     toNumber = require('./toNumber');
      3 
      4 /**
      5  * Clamps `number` within the inclusive `lower` and `upper` bounds.
      6  *
      7  * @static
      8  * @memberOf _
      9  * @since 4.0.0
     10  * @category Number
     11  * @param {number} number The number to clamp.
     12  * @param {number} [lower] The lower bound.
     13  * @param {number} upper The upper bound.
     14  * @returns {number} Returns the clamped number.
     15  * @example
     16  *
     17  * _.clamp(-10, -5, 5);
     18  * // => -5
     19  *
     20  * _.clamp(10, -5, 5);
     21  * // => 5
     22  */
     23 function clamp(number, lower, upper) {
     24   if (upper === undefined) {
     25     upper = lower;
     26     lower = undefined;
     27   }
     28   if (upper !== undefined) {
     29     upper = toNumber(upper);
     30     upper = upper === upper ? upper : 0;
     31   }
     32   if (lower !== undefined) {
     33     lower = toNumber(lower);
     34     lower = lower === lower ? lower : 0;
     35   }
     36   return baseClamp(toNumber(number), lower, upper);
     37 }
     38 
     39 module.exports = clamp;