[Easy] 手寫 clamp
2024年1月26日
💎 加入 E+ 成長計畫 如果你喜歡我們的內容,歡迎加入 E+,獲得更多深入的軟體前後端內容
題目描述
你正在開發一個處理數值資料的系統。請寫一個名為 clamp
的函式,它需要三個參數:一個數值 number
、一個最小值 lower
和一個最大值 upper
。此函式應確保輸出的 number
始終落在指定的範圍内,包括最小值和最大值本身。你會如何實作這個 clamp
呢?
// 範圍中,返回原值
clamp(7, 0, 9); // => 7
// 小於 lower,返回 lower
clamp(-12, -4, 5); // => -4
// 大於 upper,返回 upper
clamp(18, 3, 9); // => 9
本題解答
以下是本題的解答,詳細解題思路可以在 E+ 成長計畫 看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習。
解法一
function clamp(number, lower, upper) {
if (number < lower) {
return lower;
} else if (number > upper) {
return upper;
} else {
return number;
}
}
解法二
function clamp(number, lower, upper) {
return Math.min(upper, Math.max(lower, number));
}