[Easy] 手寫 inRange
2024年3月8日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
題目描述
請實作一個函式 inRange
。此函式接受三個參數:
value
:要檢查的數值start
:範圍的下限 (範圍包含start
),預設為 0end
:範圍的上限 (範圍不包含end
)
在實作時,要同時考量以下條件:
- 預設行為:如果僅提供兩個參數,則第二個參數被視為
end
,而start
此時預設為 0,這樣會讓使用該函式的人,在正數範圍內能更簡易地使用 - 負數範圍:如果
start
大於end
,inRange
會交換參數以正確處理負數範圍,確保在正負數都能被處理 - 輸出:
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);
}