HI, 我需要在条件运算符中编写多个语句。
具有条件运算符
的if条件的等价物var name;
var age;
var passed;
if ( arg == "first" )
{
name = "John";
age = "25";
passed = false;
}
else
{
name = "Peter";
age = "29";
passed = true;
}
答案 0 :(得分:3)
var passed = arg == "first"
? (name = "John", age = "25", false)
: (name = "Peter", age = "29", true);
我对embedjs的快速检查表明它或多或少都有效。 但为什么?你为什么需要那个?它有资格成为主要的WTF。
答案 1 :(得分:2)
如果您需要根据布尔条件执行语句,则应该使用if-else。条件运算符实际上是从表达式返回值,而不是执行完整语句。通过使用条件运算符,您可以使代码更难以阅读,并且更加危险。
如果您坚持使用条件运算符,alamar的解决方案似乎非常适合您的需求。但是,我建议您大力评论您的代码。下次你需要修改你的代码时,那个评论可能是花费60秒理解和花费0.6秒来理解之间的区别。
如果您对它进行评论,那么在if-else语句中使用字符较短的条件运算符确实没有带宽节省。
答案 2 :(得分:2)
Javascript支持对象文字 - 如果您只想要实例化一组变量或其他变量,请尝试类似:
var obj = arg == "first" ?
{ name : "John", age : "25", passed : false } :
{ name : "Peter", age : "29", passed : true };
之后,你可以引用名称,年龄,并传递给obj.name,obj.age和obj.passed。根据您将这三个变量一起使用的频率,您可能希望选择将它们变为真正的类。
与alamar的解决方案相比,这没有副作用(超出obj的设置,这可能会使您的代码从长远来看更容易维护。
答案 3 :(得分:1)
如果您需要在条件检查中执行多项操作,请考虑为您列出的代码创建一个函数,并在您需要检查的代码中调用该函数。这将保持您的代码整洁,您的功能可以理解。