如何使用多个带有“ OR”确认的Javascript语句条件

时间:2018-06-21 05:00:25

标签: javascript if-statement confirm

我有以下函数,其中包含javascript中的条件。

function dosomething(id, action) {
    if (action != 'delete' || confirm("Are you sure?")) {
         alert('if action equals delete, then it has been confirmed'); 
         // long lines of code executed here. 
    }
} 

在上述功能条件下,它检查动作是否不等于“删除”。如果相等,则在继续操作之前会给出确认。但是我想在“您确定吗?”的位置添加另一个值以及“删除”。消息显示/需要确认。

我无法执行此操作,并且尝试了以下操作。

if ((action != 'delete' || action != 'report') || confirm("Are you sure?")) { ...

我想做的是,如果操作==删除或报告,则弹出确认消息。

我不想编写两个不同的if语句(如下所示),因为确认后需要执行很多代码,这将是一种不好的做法。

if (action != 'delete' || confirm("Are you sure?")) {

之后

if (action != 'report' || confirm("Are you sure?")) {

谢谢

1 个答案:

答案 0 :(得分:0)

做这样的事情,减少缩进和仔细阅读布尔逻辑的需求可能会更清楚:

function dosomething(id, action) {
  if (action === 'delete' || action === 'report') {
    if (!confirm("Are you sure?")) return;
  }
  // long lines of code executed here.
}

将所有内容都写成一张像这样的支票

if ((action === 'delete' || action === 'report') && !confirm("Are you sure?")) return;

但这是不太容易理解的IMO。