JavaScript 中多个 OR 运算符的替代方案

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 

任何一个选择都无法被称为优越,因为每个选择都有一些优点和缺点。这取决于程序员的个人观点和使用的上下文。然而,了解可用的替代方案仍然是一个良好的实践。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程