@newdash/newdash
Version:
javascript/typescript utility library
62 lines (61 loc) • 1.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.inRange = void 0;
const baseInRange_1 = __importDefault(require("./.internal/baseInRange"));
const toFinite_1 = __importDefault(require("./toFinite"));
const toNumber_1 = __importDefault(require("./toNumber"));
/**
* 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 5.7.0
* @category Number
* @param number The number to check.
* @param start The start of the range.
* @param end The end of the range.
* @returns Returns `true` if `number` is in the range, else `false`.
* @see [[range]],[[rangeRight]]
* @example
*
* ```js
* 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
* ```
*/
function inRange(number, start, end) {
start = (0, toFinite_1.default)(start);
if (end === undefined) {
end = start;
start = 0;
}
else {
end = (0, toFinite_1.default)(end);
}
number = (0, toNumber_1.default)(number);
return (0, baseInRange_1.default)(number, start, end);
}
exports.inRange = inRange;
exports.default = inRange;