[Easy] 手写 clamp

2024年1月26日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

题目描述

你正在开发一个处理数值资料的系统。请写一个名为 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));
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們