Projekt

Obecné

Profil

Stáhnout (890 Bajtů) Statistiky
| Větev: | Revize:
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;
(258-258/571)