[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));
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們