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

Jaki jest najbardziej efektywny sposób przekazania powyższego oświadczenia?Co to jest skrótu javascript dla tego?

+1

Czy masz na myśli najbardziej zwięzłe? czytelny? Ponieważ byłoby to trudne do pokonania pod względem wydajności obliczeniowej. –

+0

Możliwy duplikat [javascript/jquery - wybierz większą z dwóch liczb] (http://stackoverflow.com/questions/13424721/javascript-jquery-select-the- większy-z-dwóch numerów) –

Odpowiedz

7

Math.max zwraca największą zero lub więcej liczb.

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

Po prostu z ciekawości, co oznaczałoby największe z zera? i do czego byś tego używał? – Sam

+0

Zgodnie z [docs] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max): "Jeśli nie podano żadnych argumentów, wynikiem jest -Infinity" . Może to być przydatne przy porównywaniu wyniku jednego wywołania Math.max do innego. Lub gdy liczba argumentów jest znana tylko w środowisku wykonawczym i może wynosić zero –

1

Spróbuj inline IF (operator trójargumentowy):

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

Zwany potrójnym. Czy nie byłoby to w sposób niepożądany nadpisać "najwyższy" pustym łańcuchem w fałszywym przypadku? Proponuję '...: najwyższy;' – arcyqwerty

+0

OK, dziękuję, aktualizuję moją odpowiedź. –

3

Można użyć Math.max uzyskać maksymalnie dwóch wartości, highest i pf[i].length.

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

Można też użyć operatora trójskładnikowego.

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

Wartość z operacji Ternary jest zwracana i ustawiana jest na zmienną highest.