Domanda

Devo trovare il numero più alto tra 3 numeri diversi. L'unica cosa che ho trovato è max () ma puoi usare solo 2 numeri.

Qual è il modo migliore?

È stato utile?

Soluzione

La funzione Math.max può accettare qualsiasi arbitrario numero di argomenti:

La sintassi:

Math.max([value1[,value2[, ...]]]) 

Utilizzo:

var max = Math.max(num1, num2, num3);

Ad esempio:

console.log(Math.max(1,2,3,4,5,6)); //  6

Potresti anche usarlo per ottenere il valore massimo di una matrice di numeri con l'aiuto di applica :

function maxOfArray(array) {
  return Math.max.apply(Math, array);
}


let array = [1,2,3,4,5,6];
console.log(maxOfArray(array)); // 6

Se puoi scegliere come target ES6 (ES2015), puoi anche utilizzare operatore di diffusione :

let array = [1,2,3,4,5,6];
let max = Math.max(...array);
console.log(max); // 6

Altri suggerimenti

In quasi tutte le lingue, si può usare max due volte:

Math.max(num1, Math.max(num2, num3))

Come sottolinea @CMS, JavaScript consente specificamente un numero arbitrario di parametri a Math.max:

Math.max(num1, num2, num3);

Inserisci i tuoi valori in un array arr e usa Math.min.apply (null, arr) o Math.max.apply (null, arr) rispettivamente per i valori massimo e minimo:

var arr = [];
arr.push(value1);
arr.push(value2);
arr.push(value3);

var minValue = Math.min.apply(null, arr);
var maxValue = Math.max.apply(null, arr);

Utilizzo con il nuovo operatore di diffusione

var num = [23,34,56,72,1,22]; 
Math.max(...num)

per maggiori informazioni

 var numbers = [2,3,1];
 numbers.sort(function(a,b){return b-a});
 console.log("max number is", numbers[0]); // max number is 3
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top