javascript - 如何檢查一個數字是否介於兩個值之間?
在 JavaScript 中,我告訴瀏覽器,如果視窗大小大於 500 像素,就執行某些操作。我是這麼做的:
if (windowsize > 500) {
// do this
}
這個方法效果很好,但我想應用相同的方法,只是針對一個範圍的數字。所以我想告訴我的瀏覽器,如果視窗大小在 500px 到 600px 之間,就執行某些操作。我知道這樣行不通,但這就是我想像的方式:
if (windowsize > 500-600) {
// do this
}
在 JavaScript 中這甚至可能嗎?
答案#1
測試 windowsize 是否大於 500 且小於 600,這意味著 500 或 600 本身都不會使條件為真。
if (windowsize > 500 && windowsize < 600) {
// ...
}
答案#2
我有一點時間,所以,雖然你已經接受了一個答案,我還是想提供以下內容:
Number.prototype.between = function(a, b) {
var min = Math.min(a, b),
max = Math.max(a, b);
return this > min && this < max;
};
var windowSize = 550;
console.log(windowSize.between(500, 600));JS Fiddle 示範。
或者,如果你希望有選擇來檢查一個數字是否在定義的範圍內,包含端點:
Number.prototype.between = function(a, b, inclusive) {
var min = Math.min(a, b),
max = Math.max(a, b);
return inclusive ? this >= min && this <= max : this > min && this < max;
}
var windowSize = 500;
console.log(windowSize.between(500, 603, true));JS Fiddle 示範。
參考文獻:
Math.max()。Math.min()。
答案#3
我比較喜歡把變數放在裡面,以額外提示程式碼正在驗證我的變數是否在一個數值範圍內
if (500 < size && size < 600) { doStuff(); }
答案#4
這是一個老問題,但可能對像我這樣的人有用。
lodash 有 _.inRange() 函數 https://lodash.com/docs/4.17.4#inRange
範例:
_.inRange(3, 2, 4);
// => true
請注意,此方法使用了 Lodash 工具庫,並且需要能夠使用已安裝的 Lodash 版本。
