inRange.js

import { mathMax, mathMin } from './internals/native';
import toNumber from './toNumber';
/**
 * 检查数字是否在 `start` 与 `end` 之间,但不包括 `end`。
 *
 * 如果 `start` 大于 `end` 会自动交换范围参数。
 *
 * @alias module:Number.inRange
 * @since 1.0.0
 * @param {number} number 要检查的值。
 * @param {number} start 开始范围。
 * @param {number} [end=0] 结束范围。默认 `0`。
 * @returns {number} 如果数字在范围内,返回 `true`,否则返回 `false`。
 * @example
 *
 * inRange(3, 2, 4); // true
 *
 * inRange(1, 0, 2); // true
 *
 * inRange(1.2, 0.5, 1.5); // true
 *
 * inRange(2.2, 0.5, 1.5); // false
 *
 * inRange(-2, -2, 4); // true
 *
 * inRange(4, -2, 4); // false
 *
 * // 某个范围为 0 可省略最后一个参数
 * inRange(1, 2); // true
 *
 * inRange(1, -2); // false
 *
 */
function inRange(number, start, end = 0) {
    number = toNumber(number);
    start = toNumber(start);
    end = toNumber(end);
    return number >= mathMin(start, end) && number < mathMax(start, end);
}
export default inRange;