我正在构建一个页面,其中包含一些用于搜索结果的过滤器控件。我有一个这样的数组:
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/