From 266637ba49cb1ded69197cf6fa8557cc24911146 Mon Sep 17 00:00:00 2001 From: Arjun Mahishi Date: Wed, 20 Dec 2017 22:49:18 +0530 Subject: [PATCH] Snippet to implement clamping --- snippets/clampNumber.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 snippets/clampNumber.md diff --git a/snippets/clampNumber.md b/snippets/clampNumber.md new file mode 100644 index 000000000..11089a966 --- /dev/null +++ b/snippets/clampNumber.md @@ -0,0 +1,16 @@ +### clampNumber + +Clamps `num` within the inclusive `lower` and `upper` bounds. + +If `lower` is greater than `upper`, swap them. If `num` falls within the range, return `num`. Otherwise return the nearest number in the range. + +```js +const clampNumber = (num, lower, upper) => { + if(lower > upper) upper = [lower, lower = upper][0]; + return (num>=lower && num<=upper) ? num : ((num < lower) ? lower : upper) +} + +// clampNumber(2, 3, 5) -> 3 +// clampNumber(1, -1, -5) -> -1 +// clampNumber(3, 2, 4) -> 3 +``` \ No newline at end of file