我有一些代码,其中包含很多类似于此的 if/else 语句:
var name = "true";
if (name == "true") {
var hasName = 'Y';
} else if (name == "false") {
var hasName = 'N';
};
但是有没有办法让这些陈述更短?像? "true" : "false"
...
我有一些代码,其中包含很多类似于此的 if/else 语句:
var name = "true";
if (name == "true") {
var hasName = 'Y';
} else if (name == "false") {
var hasName = 'N';
};
但是有没有办法让这些陈述更短?像? "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
但我不确定。
two
如果您的 if-else 中只有条件,这里的大多数答案都可以正常工作。对于我猜你想要的更多信息,你将使用数组。每个命名数组中对应的元素,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 说明的对象和属性来实现。
?: 操作员
如果要缩短 If/Else,可以将?:
运算符用作:
condition ? action-on-true : action-on-false(else)
例如:
let gender = isMale ? 'Male' : 'Female';
在这种情况下else
,部分是强制性的。
&& 操作员
在另一种情况下,如果您只有if
条件,则可以将&&
运算符用作:
condition && action;
例如:
!this.settings && (this.settings = new TableSettings());
试试这个方法;
速记法:
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