[Easy] 手写 inRange

2024年3月8日

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

题目描述

请实作一个函式 inRange 。此函式接受三个参数:

  • value:要检查的数值
  • start:范围的下限 (范围包含 start),预设为 0
  • end:范围的上限 (范围不包含 end)

在实作时,要同时考量以下条件:

  • 预设行为:如果仅提供两个参数,则第二个参数被视为 end,而 start 此时预设为 0,这样会让使用该函式的人,在正数范围内能更简易地使用
  • 负数范围:如果 start 大于 endinRange 会交换参数以正确处理负数范围,确保在正负数都能被处理
  • 输出:inRange 函式输出会是一个 Boolean
inRange(3, 2, 4); // => true
inRange(4, 8); // => true
inRange(4, 2); // => false
inRange(2, 2); // => false
inRange(1.2, 2); // => true

本题解答

以下是本题的解答,详细解题思路可以在 E+ 成长计划看到。如果想练习更多题目,推荐可以到 GreatFrontEnd 上练习

解法

function inRange(value, start, end = 0) {
  return value >= Math.min(start, end) && value < Math.max(start, end);
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們