javascript - 具有 1 个数组条件和外部布尔条件的过滤数组
问题描述
carArray
根据用户的特定条件过滤。
当用户选中red
复选框时,它将过滤带有红色油漆的汽车。当用户选中green
复选框时,它将过滤带有绿色油漆的汽车。当用户同时选中red
和green
复选框时,它将显示红色和绿色汽车。(依此类推,有 N 个用户条件)
我在这个例子中使用了 2 个复选框。在我的实际实现中,我有超过 5 个复选框。
我从showRed
, showGreen
boolean vars 开始跟踪用户想要什么和一个car
对象数组。
[ {
carName: xxx,
color: 'red'
},
{
carName: yyy,
color: 'green'
},
.....
]
filteredCars = carArray.filter((car) => {
// Problem: I tried to check for showRed and
// showGreen before returning but found out that I can
// only return once in here
if (showRed) {
return car.color === 'red';
}
if (showGreen) {
return car.color === 'green';
}
});
我目前在使用多个用户条件进行过滤时遇到了一些问题。
解决方案
为什么不将想要的颜色放在一个数组中colors
并检查汽车颜色
filteredCars = carArray.filter(({ color }) => colors.includes(color));
推荐阅读
- java - C#中是否有类似于Java的Cacheable?
- c - 为什么 realpath 函数在 Cygwin 中不起作用?
- python - 如何在python中获取随机时区
- javascript - 我正在尝试从函数发送多个数据请求,并确保仅在我从每个请求中获得结果后才运行代码
- python - PDF页面“AttributeError:'NoneType'对象没有属性'endStream'”
- javascript - 如何获取 JSON 中现有特定名称的数量
- javascript - 'RequestError: Error: Invalid URI' 上传文件以解析服务器云时
- react-native - 当 TextInput 上的 editable={false} 时滚动不起作用。仅限安卓
- python - 无法在文本文件中写入多个字段
- r - 相当于选择 i.*