javascript if if else (not else if)

标签 javascript if-statement

我有一段简单的代码来检查一些条件,我希望每个条件都产生一个唯一的输出,但如果没有满足条件,则产生另一个唯一的输出。

有什么方法可以创建仅在所有先前的 if 语句都失败时才触发的 else 吗?我知道下面的代码执行相同的目的,但它看起来很麻烦,并且有一种更快的方法来检查所有变量会比将它们全部复制并粘贴到另一个 if 语句中更好。

var boolean1 = true,
  boolean2 = true,
  boolean3 = false;

if (boolean1) {
  alert("boolean1");
}
if (boolean2) {
  alert("boolean2");
}
if (boolean3) {
  alert("boolean3");
}
/* and so on */
if (!boolean1 && !boolean2 && !boolean3 /* etc */ ) {
  alert("none");
}

最佳答案

要实现这种规模,您需要将数据结构更改为可以迭代的内容。这样您的处理逻辑保持不变,您可以提供任何大小的输入。这是一个实现,其中我使用一个对象,其属性表示您的 bool 值。下面的 checkResults 函数遍历对象中的属性名称,检查每个属性的值,如果任何值为 true,则执行警报并设置标志。最后,它会检查是否有任何值是 true 并针对该情况发出警报。

function checkResults(resultMap) {
    var any = false;
    Object.keys(resultMap).forEach(function(key) {
        if (resultMap[key] === true) {
          any = true;
          alert(key);
        }
    });
    if (!any)
      alert('none');
}

checkResults({
  'boolean1': false,
  'boolean2': true,
  'boolean3': false
});

如果必须,您可以按属性构建输入对象属性:

var results = {};
results['boolean1'] = true;
results['boolean2'] = false;
...
checkResults(results);

checkResults 函数始终保持不变。

关于javascript if if else (not else if),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726906/

相关文章:

javascript - 将图像异步加载到导航弹出窗口或加载图像的最佳方式

javascript - Jquery:点击更改css选择器

javascript - 使用 anchor 位置的 if 语句激活样式

jquery end 阻止菜单上最后一个链接上的 default()

javascript - 使用 JavaScript 更改文本框背景颜色

Javascript - 递归 - 迭代具有用户跳过能力的json

javascript - PDF 可 window 口浏览器兼容性

r - 改进我的编码 "for loop"

linux - 如何在 makefile 中使用导出的变量?

if-statement - 如何在谷歌表格中将分钟转换为小时?