[Easy] 手写 clamp
2024年1月26日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
题目描述
你正在开发一个处理数值资料的系统。请写一个名为 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+ 成长计画看到
解法一
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));
}