_.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