javascript - Làm thế nào để kiểm tra xem một số có nằm giữa hai giá trị không?
Trong JavaScript, tôi đang nói với trình duyệt để làm điều gì đó nếu kích thước cửa sổ lớn hơn 500px. Tôi làm như sau:
if (windowsize > 500) {
// do this
}
Điều này hoạt động rất tốt, nhưng tôi muốn áp dụng cùng một phương pháp này, nhưng với một dải số. Vì vậy, tôi muốn bảo trình duyệt của mình thực hiện một số việc nếu kích thước cửa sổ nằm trong khoảng từ 500px đến 600px. Tôi biết điều này sẽ không hoạt động, nhưng đây là cách tôi hình dung:
if (windowsize > 500-600) {
// do this
}
Điều này có khả thi trong JavaScript không?
Câu trả lời #1
Kiểm tra xem windowsize có lớn hơn 500 và nhỏ hơn 600 hay không, có nghĩa là bản thân các giá trị 500 hoặc 600 sẽ không làm cho điều kiện trở thành đúng.
if (windowsize > 500 && windowsize < 600) {
// ...
}
Câu trả lời #2
Tôi đã có một khoảnh khắc, vì vậy, mặc dù bạn đã chấp nhận một câu trả lời, tôi nghĩ tôi sẽ đóng góp những điều sau:
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));Bản demo JS Fiddle.
Hoặc, nếu bạn muốn có tùy chọn để kiểm tra một số có nằm trong phạm vi đã định bao gồm các điểm cuối:
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));Bản demo JS Fiddle.
Tài liệu tham khảo:
Math.max().Math.min().
Câu trả lời #3
Tôi thích đặt biến vào bên trong để gợi ý thêm rằng mã đang kiểm tra biến của tôi nằm trong một phạm vi giá trị
if (500 < size && size < 600) { doStuff(); }
Câu trả lời #4
Đây là một câu hỏi cũ, tuy nhiên có thể hữu ích cho một người như tôi.
lodash có hàm _.inRange() https://lodash.com/docs/4.17.4#inRange
Ví dụ :
_.inRange(3, 2, 4);
// => true
Vui lòng lưu ý rằng phương pháp này sử dụng thư viện tiện ích Lodash, và yêu cầu truy cập vào phiên bản Lodash đã được cài đặt.
