Em JavaScript, estou dizendo ao navegador para fazer algo se o tamanho da janela for maior que 500px. Eu faço assim:
if (windowsize > 500) {
// do this
}
Isso funciona muito bem, mas eu gostaria de aplicar esse mesmo método, mas com um intervalo de números. Gostaria de dizer ao meu navegador para fazer coisas se o tamanho da janela estiver entre 500 e 600 pixels. Eu sei que isso não funcionaria, mas aqui está como eu imaginei:
if (windowsize > 500-600) {
// do this
}
Isso é possível dentro do JavaScript?
javascript
Dyck
fonte
fonte
Respostas:
Testa se
windowsize
é maior que500
ou menor que600
o que significa que nem os valores500
nem a600
si mesmos resultarão na condição se tornar verdadeira.fonte
windowsize
tiver no mínimo 501 px e no máximo 599px. 500 px e 600 px são excluídos. Inclua igualdade nas comparações se desejar incluir esses valores.if(500 < windowsize && windowsize < 600)
Tive um momento, então, embora você já tenha aceitado uma resposta, pensei em contribuir com o seguinte:
Demonstração JS Fiddle .
Ou, se você preferir ter a opção de verificar se um número está no intervalo definido, incluindo os pontos finais :
Demonstração JS Fiddle .
Editado para adicionar uma pequena alteração ao exposto acima, pois, conforme observado nos comentários,
valeu a pena remover o uso de
Function.prototype.apply()
, que produz as versões alteradas dos métodos acima, primeiro sem a opção 'inclusiva':Demonstração JS Fiddle .
E com a opção 'inclusiva':
Demonstração JS Fiddle .
Referências:
Function.prototype.apply()
.Math.max()
.Math.min()
.fonte
Main.min(a,b)
? Function.prototype.apply está lento! Além de chamá-lo quando você tem uma quantidade fixa de argumentos, é inútil.Function.prototype.apply()
, mas não consigo pensar no que era ou poderia ter sido.Number
objeto. Este é um antipadrão e o incomodará se os padrões da ECMA mudarem para incluir umaNumber.between()
função ou se outra biblioteca ou outro trecho de código definir emNumber.prototype.between
outro lugar com uma definição diferente. Em vez disso, crie uma função auxiliar e use isso!Prefiro colocar a variável por dentro para dar uma dica extra de que o código está validando minha variável está entre os valores de um intervalo
fonte
min < testval < max
sintaxeÉ uma pergunta antiga, mas pode ser útil para alguém como eu.
lodash
tem a_.inRange()
função https://lodash.com/docs/4.17.4#inRangeExemplo:
Observe que esse método utiliza a
Lodash
biblioteca de utilitários e requer acesso a uma versão instalada do Lodash.fonte
_.inRange(10, 0, 10) // => false
Javascript
, é importante observar que esse método utiliza aLodash
biblioteca de utilitários e requer acesso a uma versão instalada do Lodash.Você pode usar a cláusula Multiple na
if
condição em vez de escreverporque isso realmente não faz sentido, logicamente, o JavaScript lerá sua condição if como
porque calcula
500-600
para-100
Você deve usar
&&
para verificar rigorosamente os dois casos, por exemplo, que terão esta aparênciafonte
Acabei de implementar esse jQuery para mostrar e ocultar valores modais de inicialização. Diferentes campos são exibidos com base no intervalo de valores de uma entrada da caixa de texto dos usuários.
fonte
$().val()
é irrelevante e não é necessário. Porém, novamente, na versão original da pergunta, o OP menciona o jQuery, para uma verificação aritmética simples. (suspiro) Esse é o primeiro erro.Aqui está o método mais curto possível:
Parametrizado:
Você pode dividir os dois lados por 2 se não entender como o primeiro funciona;)
fonte