Skip to main content

inRange

TS JS Deno

Checks if the given number falls within the given range.

Use arithmetic comparison to check if the given number is in the specified range. If the second parameter, end, is not specified, the range is considered to be from 0 to start.

typescript
const inRange = <T extends number | Date | string>(n: T, start: T, end?: T) => {
if (end && start > end) [end, start] = [start, end];
return end === undefined ? n >= 0 && n < start : n >= start && n < end;
};
typescript
inRange(3, 2, 5); // true
inRange(3, 4); // true
inRange(2, 3, 5); // false
inRange(3, 2); // false

inRange(new Date(2020, 5, 1), new Date(2020, 4, 12), new Date(2020, 6, 12)); //true
inRange(new Date(2020, 5, 12), new Date(2020, 6, 12), new Date(2020, 8, 12)); // false

assertEquals(inRange("d", "a", "h"), true);
assertEquals(inRange("d", "e", "h"), false);