![](/img/trans.png)
[英]Javascript conditional return statement (Shorthand if-else statement)
[英]Shorthand for if-else statement
我有一些代码,其中包含很多类似于此的 if/else 语句:
var name = "true";
if (name == "true") {
var hasName = 'Y';
} else if (name == "false") {
var hasName = 'N';
};
但是有没有办法让这些陈述更短? 像? "true" : "false"
? "true" : "false"
……
您可以将对象用作地图:
var hasName = ({
"true" : "Y",
"false" : "N"
})[name];
这也适用于许多选项
var hasName = ({
"true" : "Y",
"false" : "N",
"fileNotFound" : "O"
})[name];
(获得参考的人的奖励点)
注意:对于表示真值的变量,您应该使用实际的布尔值而不是字符串值“true”。
尝试这个
hasName = name ? 'Y' : 'N';
试试喜欢
var hasName = 'N';
if (name == "true") {
hasName = 'Y';
}
甚至尝试使用ternary operator
,例如
var hasName = (name == "true") ? "Y" : "N" ;
即使是简单的你也可以试试
var hasName = (name) ? "Y" : "N" ;
由于名称有Yes
或No
,但我不确定。
?: 操作员
如果您想缩短If/else
,您可以使用?:
运算符:
condition ? action-on-true : action-on-false(else)
例如:
let gender = isMale ? 'Male' : 'Female';
在这种情况下else
部分是强制性的。
我看到这种用于空/未定义检查的简写格式,例如:
const avatarName = user.firstname ? user.firstname : user.lastname;
但是在这种情况下,您可以简单地使用:
const avatarName = user.firstname ?? user.lastname;
或者
const avatarName = user.firstname || user.lastname;
要查看差异,请查看
&& 操作员
在另一种情况下,如果您只有if
条件,您可以使用&&
运算符:
condition && action;
例如:
!this.settings && (this.settings = new TableSettings());
如果您的 if-else 中只有two
条件,这里的大多数答案都可以正常工作。 对于我猜你想要的更多信息,你将使用数组。 names
数组中的每个名称对应的元素都会在hasNames
数组中拥有一个具有完全相同索引的元素。 然后就是这四行的问题。
names = "true";
var names = ["true","false","1","2"];
var hasNames = ["Y","N","true","false"];
var intIndex = names.indexOf(name);
hasName = hasNames[intIndex ];
此方法也可以使用Benjamin 说明的对象和属性来实现。
试试这个方法;
速记法:
let variable1 = ''; let variable2 = variable1 || 'new' console.log(variable2); // new
速写法:
let variable1 = 'ya'; let varibale2; if (variable1 !== null || variable1 !== undefined || variable1 !== '') variable2 = variable1; console.log(variable2); // ya
尝试这个
var name = "true"; var hashname; name ? hashname = "Y" : !name ? hashname = "N" : "" console.log(hashname)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.