2010-08-19 31 views
1

有沒有更簡單的方法來寫這個?在JavaScript中使用三元組

var ttt = "dd"; 
if (ttt.length < 3) 
ttt= "i" + ttt; 
+0

的方式,將支付需要注意的是,這裏所有的答案都長於且不太明顯原始代碼。雖然它可以完成,但我絕對不會建議你這麼做(爲了後面的讀者代碼)。 – 2010-08-19 11:16:46

+0

@Aidan:我看不到「var ttt =」idd「;」越來越不明顯......。 – 2010-08-19 11:29:07

+0

@davyM ...我會給你那一個,但只在字面上。 – 2010-08-19 16:41:38

回答

3

你的是很短的,但如果你想使用的conditional operator(又名三元運算符),你可以做到以下幾點:

var ttt = "dd"; 
ttt = ttt.length < 3 ? "i" + ttt : ttt; 

...或者,如果字節是真的珍貴(?代碼高爾夫球),你也可以做這樣的事情:

var ttt = "dd".length < 3 ? "i" + "dd" : "dd"; 

...但隨後可能是隻降低:

var ttt = "idd"; 

... as @Nick Craver在下面的評論中建議。

+1

+1 - 我不知道雖然....'var ttt =「idd」;'似乎*漂亮*短;)另外,你需要引用'i'在這個100%上;) – 2010-08-19 10:35:33

+0

@Nick固定:首先認爲它是一個變量。 – 2010-08-19 10:38:15

+0

A +++++++會再次做生意 – 2010-08-19 10:42:11

0

或者:

var ttt = "dd"; 
ttt = (ttt.length < 3 ? i : "") + ttt; 
2

最短具有相同的結果是:

var ttt="idd";

因爲「DD」具有2的長度,因此,如果始終是真實的,你會總是加上「我」

1

另一種選擇是使用正則表達式:

var ttt = "dd".replace(/^(\w?\w?)$/, 'i$1'); 

但你有2個問題:)

0

也有與& &操盤if

var ttt = "dd"; 
ttt.length < 3 && (ttt = "i" + ttt);