2010-08-19 66 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);