Check if the value is contained in Range Jquery/Javascript

Asked

Viewed 328 times

2

How to check if the value 15 is within the range ?

var range = [10, 50];

var valor = 15

3 answers

5


The variable range is not a crease, is a array with two values.

Therefore, it is only necessary to make a common comparison operation.

To include extremes use >= and <=, otherwise use < and >.

var range = [10, 50];
var valor = 15;

if(valor >= range[0] && valor <= range[1]) {
  console.log('está dentro do range');
}

2

Another way is with the expression:

(valor-range[0])*(valor-range[1]) <= 0
          ↓                ↓
       1º valor         2º valor
       da array         da array

Seria:

(15-10) * (15-50) <= 0
5 * -35 <= 0
-175 <= 0 // verdadeiro, está no range

If the result of the expression is equal to or less than zero, is in the crease.

Testing:

var range  = [10, 50];
var valor  = 15;

var valor2 = 9;
var valor3 = 51

if( (valor-range[0])*(valor-range[1]) <= 0 ){
  console.log(valor+' está dentro do range');
}else{
  console.log(valor+' não está dentro do range');
}

if( (valor2-range[0])*(valor2-range[1]) <= 0 ){
  console.log(valor2+' está dentro do range');
}else{
  console.log(valor2+' não está dentro do range');
}

if( (valor3-range[0])*(valor3-range[1]) <= 0 ){
  console.log(valor3+' está dentro do range');
}else{
  console.log(valor3+' não está dentro do range');
}

1

//Range
var range = [10, 50];

//Range invertido - para teste
//var range = [1000, 50];

//Valores para teste
var valor1 = 15;
var valor2 = 150;

//Limites
var menor = range[0];
var maior = range[1];

//Teste de range invertido!
//Caso os números estejam invertidos - não formando range
if(menor>maior){
  menor = range[1];
  maior = range[0];
}

//Testes

//Teste 1
document.getElementById('resposta1').innerHTML = //Insere a resposta no DIV1
  valor1 + ": "
  + (valor1>=menor && valor1<=maior?'Sim!':'Não!'); //Teste com if ternário - comparação dos limites com o valor 1

//Teste 2
document.getElementById('resposta2').innerHTML = //Insere a resposta no DIV2
  valor2 + ": "
  + (valor2>=menor && valor2<=maior?'Sim!':'Não!'); //Teste com if ternário - comparação dos limites com o valor 2
<div id="resposta1">-</div>
<div id="resposta2">-</div>

  • 4

    Although your answer probably answer the question, it would be good to put some explanation in the code

Browser other questions tagged

You are not signed in. Login or sign up in order to post.