_.clamp(number, [lower], upper)

188

_.clamp(number, [lower], upper)

_.clamp将数字固定在一个有最小和最大的区间限制内

参数

number (number): 需要固定值的数
[lower] (number): 较小的限制
upper (number): 较大的限制

返回值

(number): 返回被固定在区间内的值

例子

_.clamp(-10, -5, 5);
// => -5
 
_.clamp(10, -5, 5);
// => 5

源代码

/**
 * Clamps `number` within the inclusive `lower` and `upper` bounds.
 *
 * @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) {
  number = +number//转成数字
  lower = +lower//转成数字
  upper = +upper//转成数字
  lower = lower === lower ? lower : 0//判断NaN
  upper = upper === upper ? upper : 0//判断NaN
  if (number === number) {//如果number不是NaN
    number = number <= upper ? number : upper//如果number比upper小,不变,否则变为upper
    number = number >= lower ? number : lower//如果number比lower大,不变,否则变为lower
  }
  return number
}

export default clamp

 

 

posted @ 2019-08-27 23:50  hahazexia  阅读(529)  评论(2)    收藏  举报