Подтвердить что ты не робот

Как проверить, находится ли число между двумя значениями?

В JavaScript я говорю браузеру что-то делать, если размер окна превышает 500 пикселей. Я делаю это так:

if (windowsize > 500) {
    // do this
}

Это прекрасно работает, но я хотел бы применить этот же метод, но с диапазоном чисел. Поэтому я бы хотел, чтобы мой браузер что-то делал, если размер окна составляет от 500 до 600 пикселей. Я знаю, что это не сработает, но вот как я это себе представлял:

if (windowsize > 500-600) {
    // do this
}

Возможно ли это даже в JavaScript?

4b9b3361

Ответ 1

Проверяет, является ли windowsize больше, чем 500, и меньше, чем 600, что означает, что ни значения 500, ни 600 сами по себе не приведут к тому, что условие станет истинным.

if (windowsize > 500 && windowsize < 600) {
  // ...
}

Ответ 2

У меня был момент, поэтому, хотя вы уже приняли ответ, я подумал, что внес бы следующее:

Number.prototype.between = function(a, b) {
  var min = Math.min.apply(Math, [a, b]),
    max = Math.max.apply(Math, [a, b]);
  return this > min && this < max;
};

var windowSize = 550;

console.log(windowSize.between(500, 600));

Ответ 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.

Ответ 5

Я только что реализовал этот бит jQuery, чтобы показать и скрыть значения модальности загрузки. Различные поля отображаются на основе диапазона значений записи текстового поля пользователя.

$(document).ready(function () {
    jQuery.noConflict();
    var Ammount = document.getElementById('Ammount');

    $("#addtocart").click(function () {

            if ($(Ammount).val() >= 250 && $(Ammount).val() <= 499) {
                {
                    $('#myModal').modal();
                    $("#myModalLabelbronze").show();
                    $("#myModalLabelsilver").hide();
                    $("#myModalLabelgold").hide();
                    $("#myModalPbronze").show();
                    $("#myModalPSilver").hide();
                    $("#myModalPGold").hide();
                }
            }
    });