En JavaScript, le digo al navegador que haga algo si el tamaño de la ventana es superior a 500 px. Lo hago así:
if (windowsize > 500) {
// do this
}
Esto funciona muy bien, pero me gustaría aplicar este mismo método, pero con un rango de números. Así que me gustaría decirle a mi navegador que haga cosas si el tamaño de la ventana está entre 500 px y 600 px. Sé que esto no funcionaría, pero así es como lo imaginé:
if (windowsize > 500-600) {
// do this
}
¿Es esto posible en JavaScript?
javascript
Dyck
fuente
fuente
Respuestas:
Comprueba si
windowsize
es mayor500
o menor que el600
significado de que ninguno de los valores500
o en600
sí mismo hará que la condición se vuelva verdadera.fuente
windowsize
Tenga en cuenta que esta condición solo es cierta cuando es de al menos 501 px y como máximo 599 px. 500px y 600px están excluidos. Agregue igualdad a las comparaciones si desea incluir estos valores.if(500 < windowsize && windowsize < 600)
Tuve un momento, así que, aunque ya has aceptado una respuesta, pensé que contribuiría lo siguiente:
Demostración de JS Fiddle .
O, si prefiere tener la opción de verificar que un número esté en el rango definido, incluidos los puntos finales :
Demostración de JS Fiddle .
Editado para agregar una enmienda menor a lo anterior, dado que, como se señala en los comentarios,
valió la pena eliminar el uso de
Function.prototype.apply()
, que produce las versiones modificadas de los métodos anteriores, en primer lugar sin la opción 'inclusiva':Demostración de JS Fiddle .
Y con la opción 'inclusiva':
Demostración de JS Fiddle .
Referencias
Function.prototype.apply()
.Math.max()
.Math.min()
.fuente
Main.min(a,b)
? ¡Function.prototype.apply es lento! Además de llamarlo cuando tienes una cantidad fija de argumentos no tiene sentido.Function.prototype.apply()
, pero no puedo pensar qué era o podría haber sido.Number
objeto. Este es un antipatrón y lo morderá si los estándares de ECMA cambian para incluir unaNumber.between()
función, o si otra biblioteca u otra pieza de código define enNumber.prototype.between
otro lugar con una definición diferente. En cambio, ¡haga una función auxiliar y úsela!Prefiero poner la variable en el interior para dar una pista adicional de que el código está validando mi variable está entre valores de rango
fuente
min < testval < max
sintaxis deEs una vieja pregunta, sin embargo, podría ser útil para alguien como yo.
lodash
tiene la_.inRange()
función https://lodash.com/docs/4.17.4#inRangeEjemplo:
Tenga en cuenta que este método utiliza la
Lodash
biblioteca de utilidades y requiere acceso a una versión instalada de Lodash.fuente
_.inRange(10, 0, 10) // => false
Javascript
, vale la pena señalar que este método utiliza laLodash
biblioteca de utilidades y requiere acceso a una versión instalada de Lodash.Puede usar la cláusula múltiple en
if
condición en lugar de escribirporque esto realmente no tiene sentido lógicamente JavaScript leerá su condición si
porque se calcula
500-600
a-100
Debe usar
&&
para verificar estrictamente ambos casos, por ejemplo, que se verá asífuente
Acabo de implementar este bit de jQuery para mostrar y ocultar los valores modales de arranque. Se muestran diferentes campos según el rango de valores de una entrada de cuadro de texto de los usuarios.
fuente
$().val()
es irrelevante y no es necesario. Pero nuevamente, en la versión original de la pregunta, OP menciona jQuery, para una simple comprobación aritmética. (suspiro) Ese es el primer error.Aquí está el método más corto posible:
Parametrizado:
Puedes dividir ambos lados entre 2 si no entiendes cómo funciona el primero;)
fuente