JS 拆分字符串之间的 if 语句
2016-03-26
1119
如何在拆分字符串之间放置 if 语句?显然我可以这样做:
if(lang == 'eng'){
var a_string = 'hello';
}else if(lang == 'ger'){
var a_string = 'hallo';
}
但在某些情况下这太长了。我想到的是以下内容:
var lang = (e.g. 'ger' or 'eng');
var a_string = 'h' + if(lang == 'eng'){'e'}else if(lang == 'ger'){'a'} + 'llo';
有没有办法在拆分字符串之间编写 if 语句?
2个回答
您可以使用 条件(三元)运算符 :
The conditional (ternary) operator is the only JavaScript operator that takes three operands. This operator is frequently used as a shortcut for the if statement.
Syntax
condition ? expr1 : expr2
var lang = 'eng';
document.write('h' + (lang == 'eng' ? 'e' : lang == 'ger' ? 'a' : '') + 'llo' + '<br>');
lang = 'ger';
document.write('h' + (lang == 'eng' ? 'e' : lang == 'ger' ? 'a' : '') + 'llo');
另一种解决方案是使用 逻辑与 (&&) 和 逻辑或 (||)
var lang = 'eng';
document.write('h' + (lang == 'eng' && 'e' || lang == 'ger' && 'a' || '') + 'llo' + '<br>');
lang = 'ger';
document.write('h' + (lang == 'eng' && 'e' || lang == 'ger' && 'a' || '') + 'llo');
Nina Scholz
2016-03-26
或者,您可以将键/值对存储在对象中,这样就无需直接检查
lang
的值。如果您需要多次重复使用相同的值,这可能会有所帮助。
var greetings = {}
greetings.eng = 'e'
greetings.ger = 'a'
var lang = "eng"
"h" + greetings[lang] + "llo" // 'hello'
lang = "ger"
"h" + greetings[lang] + "llo" // 'hallo'
Joseph
2016-03-26