Printing the highest value variable

-2

I'm trying to print the variable with the highest value, but the value is always N1. How do I print the correct value?

var n1 = 4;
var n2 = 7;
var n3 = 6;

if (n1 > n2, n3) {
console.log("N1 é a maior variável")
} else if (n2 > n1, n3) {
console.log("N2 é a maior variável")
} else{
console.log("N3 é a maior variável")
};
    
asked by anonymous 09.10.2018 / 16:01

4 answers

-1

Using the base that the above colleagues sent me I put together something a bit more descriptive, maybe it will be useful for you at that beginning.

To help, I will try to explain in a simple way the about 2 logical operators that are most used in the beginning || and && .

The || is a logical operator that translated means 'OR', or in Portuguese 'OU'. It is used when at least one of your conditions is true.

The && is a logical operator that translated means 'AND', or in Portuguese 'E'. It is used when all your conditions are true.

In your case, the & amp; because it was necessary that the value tested be greater than all the others at the same time.

I hope I have helped. I'll leave a link that might be useful as well.

  //Declaração das variáveis.
  var valor1 = 3;
  var valor2 = 9;
  var valor3 = 1;

  //Condições para encontrar o maior valor.

  //Caso o valor1 seja maior que o valor2 E valor1 seja maior que valor3 (O valor1 é o maior).
  if (valor1 > valor2 && valor1 > valor3) {
      console.log("O valor 1 é o maior")
  } 
  //Caso o valor2 seja maior que o valor1 E valor2 seja maior que valor3 (O valor2 é o maior).
  else if (valor2 > valor1 && valor2 > valor3) {
      console.log("O Valor 2 é o maior")
  } 
  //Caso não seja o valor1 nem o valor2, então quer dizer que o valor3 é o maior.
  else {
      console.log("O valor 3 é o maior")
  };
    
09.10.2018 / 21:22
2

Use this:

var n1 = 4;
var n2 = 7;
var n3 = 6;
        
if (n1 > n2 && n1>n3) {
  console.log("N1 é a maior variável")
} else if (n2 > n1 && n2>n3) {
  console.log("N2 é a maior variável")
} else{
  console.log("N3 é a maior variável")
};
    
09.10.2018 / 16:14
1

Here is another alternative, but you would need to change your input structure instead of variables to assemble an object and use them as properties of it.

//convertendo a sua entrada em um objeto
var entrada = {
  N1: 4,
  N2: 7,
  N3: 6
}

var imprimeMaior = function(input) {
  //criando a estrutura para armazenar e comparar o maior valor 
  var maior = {
    nome: null,
    valor: null
  };

  //percorrendo todos as propriedades do objeto de entrada
  for (item in input) {
    //se for maior ele armazena
    if (input[item] > maior.valor) {
      maior.nome = item;
      maior.valor = input[item];

    }
  }
  console.log(maior.nome + " é a maior variável");

}

//executando o método
imprimeMaior(entrada);
    
09.10.2018 / 16:51
0
  

To avoid multiple ifs elses if there are too many values to test I would suggest the library Underscore.js

Underscore.js is a small library of utility codes focused primarily on data structure manipulation.

For a meager 14kb you get features like map, select and invoke, as well as a templating engine that by itself already makes use of the library.

Another cool point is that scripts always try to use native browser features, that is, in modern browsers the library takes advantage of the forEach, map, indexOf, filter, etc. implementations

var n1 = 4;
var n2 = 7;
var n3 = 6;
var n4 = 8;
var n5 = 3;
var n6 = 5;
var n7 = 2;
var n8 = 1;

var obj = {
    n1: n1,
    n2: n2,
    n3: n3,
    n4: n4,
    n5: n5,
    n6: n6,
    n7: n7,
    n8: n8

};

var maior = _.max(Object.keys(obj), function (o) {
    return obj[o];
});


console.log(maior);
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
    
09.10.2018 / 16:35