javascript function that receives three numbers as parameters and returns the largest

3

I need to create a function that gets three numbers as parameters and returns the largest one. If two or three are the same, it shows the value equal.

I was able to make the comparison, but it is still necessary to show that if it has a repeated value it shows this value.

Fiddle

var n1 = parseFloat(prompt("Digite um número:"));
var n2 = parseFloat(prompt("Digite um número:"));
var n3 = parseFloat(prompt("Digite um número:"));

function maiorDosTres() {
    var a = Array.prototype.sort.call(arguments);
    alert( "O maior número é: " + a[a.length - 1] + " e o menor é: " + a[0]);
}

maiorDosTres(n1, n2, n3);Q
    
asked by anonymous 27.09.2018 / 03:12

3 answers

6

Math.max () - returns the largest of one or more numbers

var n1 = parseFloat(prompt("Digite um número:"));
var n2 = parseFloat(prompt("Digite um número:"));
var n3 = parseFloat(prompt("Digite um número:"));

var numbers = [n1, n2, n3];

var sorted_arr = numbers.sort();  
var results = [];
for (var i = 0; i < numbers.length - 1; i++) {
    if (sorted_arr[i + 1] == sorted_arr[i]) {
        results.push(sorted_arr[i]);
    }
}
var repetido = (results[0]);

if (results!=""){
  console.log(repetido);
}else{
  console.log(Math.max(n1, n2, n3));
}
    
27.09.2018 / 05:43
-1

There are several ways to do this. In the example below, I used the method .sort() , which sorts the numbers in ascending order. To change the order to decreasing (in order to return the largest), I used another method, .reverse() .

function maior (a, b, c) {
  return [a, b, c].sort().reverse()[0];
}

console.log(maior(3, 5, 1));
console.log(maior(3, 3, 1));
    
27.09.2018 / 03:52
-1

As there are only 3 numbers and if there is any repetition that returns it , in this case it is enough that only two numbers are equal to meet this criterion.

Explanations in the code:

var n1 = parseFloat(prompt("Digite um número:"));
var n2 = parseFloat(prompt("Digite um número:"));
var n3 = parseFloat(prompt("Digite um número:"));

function maiorDosTres() {
    var a = [].sort.call(arguments);
    var maior = a[2]; // seleciona o último número
    var menor = a[0] // seleciona o primeiro número
    var msg = maior == a[1] || menor == a[1] ? // se o primeiro ou o último for igual ao segundo
      "Número repetido: "+ (maior == a[1] ? maior : menor) // mostra essa mensagem selecionando o que foi igual
      :
      "O maior número é: " + maior + " e o menor é: " + menor; // ou então mostra essa mensagem quando não houve repetidos

    alert(msg);
}

maiorDosTres(n1, n2, n3);
    
27.09.2018 / 04:20