Problems › TypeScript › validation
Keep a value inside its range
A slider hands back whatever the user dragged it to, and the settings layer pins it into the range the setting allows.
- Below the bottom becomes the bottom; above the top becomes the top.
- If the two bounds arrive the wrong way round, swap them rather than refusing.
clampToRange(amount: int, low: int, high: int) → int
Where you start
function clampToRange(amount: number, low: number, high: number): number {
}
Worked examples
| Call | Result |
|---|---|
clampToRange(5, 1, 10) | 5 |
clampToRange(0, 1, 10) | 1 |
clampToRange(99, 1, 10) | 10 |
clampToRange(5, 10, 1) | 5 |
Hint
Sort the bounds first and the rest is two comparisons.
Reference solution in TypeScript
function clampToRange(amount: number, low: number, high: number): number {
const lo = Math.min(low, high);
const hi = Math.max(low, high);
return Math.min(hi, Math.max(lo, amount));
}