JavaScript 中多个 OR 运算符的替代方案
在本文中,我们将学习在条件语句中使用多个 || (OR 运算符) 的替代方案。在条件语句中使用多个 OR 运算符可能会导致代码的可读性差,并且常常功能有限。
示例: 下面的 JavaScript 代码可以通过其他方法来执行相同的任务:
let user = "motivated";
let recommended_org = "";
/* If user is a geek or motivated or
curious then the recommended organisation
for him/her is GeeksforGeeks */
if (user == "geek" ||
user == "motivated" ||
user == "curious") {
recommended_org = "GeeksforGeeks";
console.log(recommended_org);
}
输出:
GeeksforGeeks
方法1: 此方法使用if-else语句来处理所有可能情况。
在此方法中,语法大大增加。因为每个if语句的结果相同,所以可能更好地使用使用多个OR操作的原始方法。
然而,随着程序在选项方面变得更加复杂,if-else语句更受欢迎,因为它增加了代码的可读性。它也非常灵活,可以添加任意数量的条件,甚至嵌套条件。因此,它可能在复杂条件中使用。
示例: 以下示例演示了这种方法:
<script type="text/javascript" charset="utf-8">
/* If user is a geek or motivated or
curious then the recommended organisation
for him/her is GeeksforGeeks */
let user ="geek"
if (user == "geek") {
recommended_org = "GeeksforGeeks";
}
else if (user == "motivated") {
recommended_org = "GeeksforGeeks";
}
else if (user == "curious") {
recommended_org = "GeeksforGeeks";
}
else {
recommended_org = "No recommendation"
}
console.log(recommended_org);
</script>
输出:
GeeksforGeeks
方法2: 这种方法使用switch-case语句来处理所有不同的可能性。
switch-case语句很强大,它提高了代码的可读性,而且使用默认值和break语句使得代码更高效。
在这种情况下,使用switch-case语句增加了语法,但相对于前一种方法,代码的重复性较少。在if-else梯子中,我们使用了三次赋值语句,但在这种方法中,我们只使用了一次。但是,嵌套switch case会使代码变得非常复杂,通常不适用于有很多嵌套条件的问题,因此它不像if-else那样灵活。
示例: 下面的示例演示了这种方法:
let user = "curious";
let recommended_org = "No recommendation";
/* If user is a geek or motivated or
curious then the recommended organisation
for him/her is GeeksforGeeks */
switch (user) {
case "geek":
case "motivated":
case "curious":
recommended_org = "GeeksforGeeks"
break;
default:
recommended_org = "No Recommendation"
}
console.log(recommended_org);
输出:
GeeksforGeeks
方法3: 这种方法使用一个map对象来处理所有不同的可能性。
这种方法像if-else梯子一样非常灵活,很容易扩展,只需要添加更多的键值对,但在非常复杂的示例中仍然无法取代上面的方法。
示例: 下面的示例演示了这种方法:
let user = "geek";
/* A recommended_org map object which consists
the behaviour of the user as the key and the
recommended organisation as the values */
var recommended_org = {
"geek": "GeeksforGeeks",
"motivated": "GeeksforGeeks",
"curious": "GeeksforGeeks",
"other": "No Recommendation"
}
/* if user is a geek or motivated or
curious then the recommended organisation
for him/her is GeeksforGeeks */
console.log(recommended_org[user] ||
recommended_org["other"]);
输出结果:
GeeksforGeeks
任何一个选择都无法被称为优越,因为每个选择都有一些优点和缺点。这取决于程序员的个人观点和使用的上下文。然而,了解可用的替代方案仍然是一个良好的实践。
极客教程