2013-02-21 17 views
20

ile Atamak JavaScript gibi bir şey yapmak mümkün müdür?Sadece, üçlü operatörde koşul true JavaScript

max = (max < b) ? b; 

Diğer bir deyişle, yalnızca koşul doğruysa değeri atayın. Durum yanlışsa, hiçbir şey yapmayın (ödev yok). Mümkün mü?

+4

olabileceğini düşünüyorum denemek üçlü daha uygun olduğunu düşünüyorum? –

+0

max = (maks Pandian

+0

'(max Musa

cevap

41

ternary operator'u kullanmayın, sonra üçüncü bir argüman gerektirir. Değiştirmek istemiyorsanız (max = (max < b) ? b : max) max'u max'a yeniden atamanız gerekir.

bir if-statement çok daha açıktır:

if (max < b) max = b; 

Ve bir ifade olmasını gerekiyorsa, şunları yapabilirsiniz (ab) AND kısa devre değerlendirmeyi kullanın:

(max < b) && (max = b) 

Btw, değişken adlarını (veya ifadelerini?) Yinelemekten kaçınmak isterseniz, maximum function:

.210
+0

+1, bunun hakkında düşünmedim :-) –

+0

İkinci modun yapılmadığını düşünmüyordu .. Gerçekten hoş bir tane. – codiac

+0

İkincisi, birincisi daha mı hızlı? Çünkü hafıza bakımından, aynı miktarda dikişler kullanılır. – codiac

2

Orada üçlü operatör olmayan belirli bir operatör değil, ama bu gibi kullanabilirsiniz:

max = (max < b) ? b : max; 
5

sadece Koşul yanlışsa kendisine max ayarlayabilirsiniz.

max = (max < b) ? b : max; 

Yoksa && operatörünü kullanarak deneyebilirsiniz:

(max < b) && (max = b); 

Veya kod basit tutmak için, sadece bir if kullanın.

if(max < v) max = b; 
7

üçlü operatör mutlaka sahip bir ekspresyon hem doğru ve yanlış durumlar için her iki değeri, yani var. Koşul yanlışsa Bununla birlikte

max = (max < b) ? b : max; 

bu durumda, max değeri değişmeyecektir olabilir

.

0

Normal `if` ifadesini kullanarak kaçınmak için bir sebep mi var bu

(max < b) ? max = b : ''; 
+3

Lütfen üçlü kullanmanın avantajları hakkında bazı argümanlar verin. – Naktibalda

0

Ben daha iyi bir yaklaşım

max = Math.max(max, b) 
+0

yorumda olmalıdır. – Rumit