_.inRange(number, [start=0], end)

189

_.inRange(number, [start=0], end)

_.inRange检查number是否在start和end之间,不包括end。如果没有指定end,则start被设置为end,而start为0。如果start比end大,则start和end互相交换以支持负区间。

参数

number (number): 需要检查的数字
[start=0] (number): 区间起始端点,如果未设置end,则start=0
end (number):  区间结束端点

返回值

(number): 如果数字在区间中,返回true,否则false

例子

_.inRange(3, 2, 4);
// => true
 
_.inRange(4, 8);
// => true
 
_.inRange(4, 2);
// => false
 
_.inRange(2, 2);
// => false
 
_.inRange(1.2, 2);
// => true
 
_.inRange(5.2, 4);
// => false
 
_.inRange(-3, -2, -6);
// => true

源代码

import baseInRange from './.internal/baseInRange.js'

/**
 * Checks if `number` is between `start` and up to, but not including, `end`. If
 * `end` is not specified, it's set to `start` with `start` then set to `0`.
 * If `start` is greater than `end` the params are swapped to support
 * negative ranges.
 *
 * @since 3.3.0
 * @category Number
 * @param {number} number The number to check.
 * @param {number} [start=0] The start of the range.
 * @param {number} end The end of the range.
 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
 * @see range, rangeRight
 * @example
 *
 * inRange(3, 2, 4)
 * // => true
 *
 * inRange(4, 8)
 * // => true
 *
 * inRange(4, 2)
 * // => false
 *
 * inRange(2, 2)
 * // => false
 *
 * inRange(1.2, 2)
 * // => true
 *
 * inRange(5.2, 4)
 * // => false
 *
 * inRange(-3, -2, -6)
 * // => true
 */
//检查number是否在start和end之间,不包括end。如果没有指定end,则start被设置为end,而start为0。如果start比end大,则start和end互相交换以支持负区间
function inRange(number, start, end) {
  if (end === undefined) {//如果没有传递end,则传递的start就是end,而start为0
    end = start
    start = 0
  }
  return baseInRange(+number, +start, +end)//调用baseInRange
}

export default inRange

baseInRange

/**
 * The base implementation of `inRange` which doesn't coerce arguments.
 *
 * @private
 * @param {number} number The number to check.
 * @param {number} start The start of the range.
 * @param {number} end The end of the range.
 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
 */
function baseInRange(number, start, end) {
  return number >= Math.min(start, end) && number < Math.max(start, end)
  //如果number大于等于start和end中的最小值并且小于start和end中的最大值则返回true,否则返回false
}

export default baseInRange

 

posted @ 2020-08-11 00:04  hahazexia  阅读(276)  评论(0)    收藏  举报