首页 > 解决方案 > 具有 1 个数组条件和外部布尔条件的过滤数组

问题描述

carArray根据用户的特定条件过滤。

当用户选中red复选框时,它将过滤带有红色油漆的汽车。当用户选中green复选框时,它将过滤带有绿色油漆的汽车。当用户同时选中redgreen复选框时,它将显示红色和绿色汽车。(依此类推,有 N 个用户条件)

我在这个例子中使用了 2 个复选框。在我的实际实现中,我有超过 5 个复选框。

我从showRed, showGreenboolean 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';
    }
});

我目前在使用多个用户条件进行过滤时遇到了一些问题。

标签: javascriptangulartypescript

解决方案


为什么不将想要的颜色放在一个数组中colors并检查汽车颜色

filteredCars = carArray.filter(({ color }) => colors.includes(color));

推荐阅读