javascript - 在 JavaScript 中轻松检查几个可能的条件?

标签 javascript

我正在构建一个页面,其中包含一些用于搜索结果的过滤器控件。我有一个这样的数组:

var vehicles = [
    {
        make: 'Audi',
        wheels: 4
    },
    {
        make: 'Chrysler',
        wheels: 3
    },
    {
        make: 'Toyota',
        wheels: 4
    },
    {
        make: 'Harley Davidson',
        wheels: 2
    }
];

var vehiclesToDisplay = [];

在我的界面中,我有 3 个复选框,允许访问者根据车轮数量选择车辆,例如:

  • 两轮车
  • 三轮车
  • 4 个或更多轮子

现在,用户可以选择这些复选框中的任何一个。假设他们只选择 2 和 4 或更多。在这种情况下,我必须遍历数组,验证两个条件并将对象推送到变量 vehiclesToDisplay。同样,用户可以选择只看到 2 轮车或 4 轮或更多等。

我将如何着手验证这些多重条件?我有一些变量来保存复选框的状态,如下所示:

var wheels2 = true, // the value of the checkbox
    wheels3 = true,
    wheelsMore = true;

这些变量的任何组合都可能是错误的/正确的。预测所有组合并为每个组合编写 IF 语句似乎不对。我该怎么做?

最佳答案

只需使用多个 && & || 语句来过滤您的数组,如下所示:

vehicles.filter(function(car){
    return wheels2 && car.wheels === 2
           || wheels3 && car.wheels === 3
           || wheelsMore && car.wheels > 3
});

如果您碰巧有多达 30 个轮子的过滤器(和车辆),您不想单独写下来,为了让事情保持干燥,请检查@DavidThomas 的回答。

关于javascript - 在 JavaScript 中轻松检查几个可能的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34490553/

相关文章:

javascript - 当元素数据更改时,jQuery 的 data() 属性不会更新

Javascript 函数进入循环

javascript - Babel-node 中的变量声明

javascript - 防止按住 Shift 键时按键

javascript - require 在 node.js 中的行为

javascript - JS 拆分 OR 逻辑运算符

javascript - Dynamics 365。字段值 (javascript)

javascript - 使用 setTimeout() 的 Promise.all() 问题,状态不更新

javascript - 在浏览器中播放 HTML5 视频——什么适用于大多数 Android 设备?

javascript - jquery ajax html 警报中的 "\r\n\"