多个 if else 条件的替代方法[关闭]

2024-05-06

我有多个条件需要检查和执行,如下所示。

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(使用前将#替换为@)

多个 if else 条件的替代方法[关闭] 的相关文章

随机推荐