2015-10-16 15 views
5
if(pf[i].length > highest){ 
    highest = pf[i].length; 
} 

Qual è il modo più efficiente per trasmettere la dichiarazione di cui sopra?Qual è l'abbreviazione di javascript per questo?

+1

Intendi il più conciso? leggibile? Perché sarebbe difficile batterlo in termini di efficienza computazionale –

+0

Possibile duplicato di [javascript/jquery - seleziona il più grande dei due numeri] (http://stackoverflow.com/questions/13424721/javascript-jquery-select-the- più grande di due numeri) –

risposta

7

Math.max funzione restituisce il più grande di zero o più numeri.

highest = Math.max(pf[i].length, highest) 
+0

Solo per curiosità, cosa significherebbe il più grande di zero? e per cosa lo useresti? – Sam

+0

Secondo [documenti] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max): "Se non viene fornito alcun argomento, il risultato è -Infinity" . Ciò può essere utile quando si confronta il risultato di una chiamata Math.max con un'altra. O quando il numero di argomenti è noto solo al runtime e potrebbe essere zero –

1

Prova in linea IF (operatore ternario):

highest = pf[i].length > highest ? pf[i].length : highest; 
+1

Chiamato ternario. Inoltre, questo non dovrebbe sovrascrivere indesiderabilmente "il più alto" con una stringa vuota nel caso falso? Suggerisco '...: più alto;' – arcyqwerty

+0

Ok grazie, aggiornando la mia risposta. –

3

È possibile utilizzare Math.max per ottenere il massimo dei due valori, highest e pf[i].length.

highest = Math.max(highest, pf[i].length); 

Oppure, è possibile utilizzare anche l'operatore ternario.

highest = pf[i].length > highest ? pf[i].length : highest; 
//  ^^^^^^^^^^^^^^^^^^^^^^       Condition 
//         ^^^^^^^^^^^^   Execute when True 
//            ^^^^^^^ Execute when False 

Il valore dal funzionamento Ternario viene restituito ed è impostata alla variabile highest.

Problemi correlati