[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);
}