使用1个数组条件和外部布尔条件过滤数组

Zai*_*inu 0 javascript typescript angular

carArray从用户过滤一定的条件.

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

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

我开始用showRed,showGreen布尔瓦尔来跟踪用户想要什么,数组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';
    }
});
Run Code Online (Sandbox Code Playgroud)

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

Nin*_*olz 5

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

filteredCars = carArray.filter(({ color }) => colors.includes(color));
Run Code Online (Sandbox Code Playgroud)