我有多个条件需要检查和执行,如下所示。
if (date == current_date && source === "s3") {
table_name = "Table1";
} else if (date == current_date && source !== "s3") {
table_name = "Table2";
} else if (date !== current_date && source === "s3") {
table_name = "Table3";
} else if (date !== current_date && source !== "s3") {
table_name = "Table4";
}
我认为使用 switch 语句在这里没有意义,因为我们没有根据 switch 表达式评估 case 语句表达式。
那么可以使用多个 if else 语句或任何更好的替代方法吗?
你的代码100%是一个不错的选择。只是有点难读。您可以将公共代码提取到变量中以使其更具可读性
var isCurrent = date == current_date;
var isS3 = source === "s3";
if (isCurrent && isS3) {
table_name = "Table1";
} else if (isCurrent && !isS3) {
table_name = "Table2";
} else if (!isCurrent && isS3) {
table_name = "Table3";
} else {
table_name = "Table4";
}
另一种选择是使用三元运算符
var isCurrent = date == current_date;
var isS3 = source === "s3";
if (isCurrent) {
table_name = isS3 ? "Table1" : "Table2";
} else {
table_name = isS3 ? "Table3" : "Table4";
}
它可能是一个大的三元组,但它有点难以阅读
var isCurrent = date == current_date;
var isS3 = source === "s3";
table_name = isCurrent ?
(isS3 ? "Table1" : "Table2") :
(isS3 ? "Table3" : "Table4");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)