HOWTO · JavaScript

Comprobar si el número está entre dos valores en JavaScript

En este artículo, veremos cómo verificar si un número se encuentra entre dos valores en JavaScript.

En esta página

Para comprobar si un número está entre dos valores en JavaScript, compáralo con ambos límites y une las comparaciones con AND lógico (&&). Por ejemplo, number > lower && number < upper comprueba si el número está estrictamente dentro del rango. Esta versión excluye los valores iguales a cualquiera de los límites. Si el rango debe incluir ambos extremos, usa >= y <=.

Comprueba si un número está entre dos valores en JavaScript

Una comprobación de rango combina dos comparaciones: el número debe ser mayor que el límite inferior y menor que el límite superior. El operador && hace que toda la condición sea verdadera solo cuando ambas comparaciones lo son. Si alguna es falsa, el número queda fuera del rango estricto.

Por ejemplo, con los límites 10 y 50, el valor 25 supera la comprobación estricta. Los valores 10 y 50 no, porque > y < excluyen la igualdad. Para incluir los extremos, escribe number >= lower && number <= upper. Elige los operadores según la regla que necesite tu programa: la palabra «entre» no especifica por sí sola si se incluyen los extremos.

Los operadores de comparación de JavaScript producen resultados booleanos cuando se aplican a operandos numéricos. Consulta la documentación de MDN sobre operadores de comparación y la documentación sobre operadores lógicos para obtener más detalles. Los ejemplos siguientes suponen que el valor y ambos límites son números, y que el límite inferior es menor que el superior.

Usa una instrucción if para comprobar si un número está en un rango

Una función de predicado con nombre permite reutilizar la regla del rango. Este ejemplo usa una instrucción if para elegir entre dos mensajes. Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

function isBetween(number, lower, upper) {
  return number > lower && number < upper;
}

const value = 25;
if (isBetween(value, 10, 50)) {
  console.log(`${value} is between 10 and 50`);
} else {
  console.log(`${value} is outside the range`);
}

La función devuelve un valor booleano, así que puedes usarla en cualquier lugar donde se espere una condición. Para el valor del ejemplo, la primera comparación es 25 > 10 y la segunda es 25 < 50; ambas son verdaderas, por lo que se ejecuta la rama if. Si alguna comparación es falsa, el control pasa a else. El formato con bloques resulta útil cuando alguna rama necesita varias instrucciones o cuando nombrar cada rama facilita seguir la lógica.

Usa el operador ternario para comprobar si un número está en un rango

Para elegir entre dos valores de forma breve, puedes usar el mismo predicado en una expresión ternaria. La condición va antes de ?; si es verdadera, se elige la expresión entre ? y :, y si es falsa, se elige la expresión que va después de :.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

function isBetween(number, lower, upper) {
  return number > lower && number < upper;
}

const value = 25;
const message = isBetween(value, 10, 50)
  ? `${value} is between 10 and 50`
  : `${value} is outside the range`;
console.log(message);

Este ejemplo tiene el mismo comportamiento estricto en los extremos que el de if, porque ambos usan isBetween. Una expresión ternaria produce un valor que puedes asignar o pasar a otra expresión. Mantén breves ambas ramas: una expresión ternaria anidada y larga dificulta distinguir la condición y sus resultados.

Elige entre if y el operador ternario

Usa if cuando una rama realice varias acciones, contenga una lógica más compleja o se beneficie de un flujo de control explícito. Usa una expresión ternaria cuando elijas entre dos valores concisos y el resultado siga siendo fácil de leer. Ambas formas se basan en el mismo predicado de rango, así que cambiar sus comparaciones también cambia la regla sobre los extremos en ambos casos.

Mantén los límites en el orden previsto. Si una función puede recibirlos en cualquier orden, normalízalos antes de comprobar el rango; por ejemplo, asigna el valor menor a lower y el mayor a upper. Asegúrate también de que las entradas sean números antes de compararlas: los operadores de comparación de JavaScript pueden convertir valores de otros tipos, lo que quizá no coincida con la regla de validación que necesita tu aplicación. Para los datos introducidos por el usuario, analiza y valida primero el valor y los límites; después, aplica el predicado de rango.