如何筛选所有汽车共有的颜色?已尝试多方法未成功
解决方案:筛选所有汽车共有的颜色
核心思路是从候选颜色数组里,挑出那些每一辆汽车的颜色列表都包含的颜色,用filter+every就能轻松实现,不需要复杂的嵌套处理:
实现代码
const color = ['green','red'] const cars = [ {id:1, colors: ['green']}, {id:2, colors: ['green','red']}, {id:3, colors: ['blue','green']} ] const colorsThatEveryCarHave = color.filter(c => { // 检查当前颜色是否存在于每一辆车的colors数组中 return cars.every(car => car.colors.includes(c)) }) console.log(colorsThatEveryCarHave) // 输出: ['green']
代码解释
color.filter(c):遍历候选颜色数组,对每个颜色做条件校验cars.every(car => car.colors.includes(c)):用every方法验证所有汽车是否都包含当前颜色——只有当所有车都满足时,这个颜色才会被保留到结果数组里
边界情况测试(无共有颜色)
如果候选颜色里没有所有汽车都包含的颜色,会返回空数组:
const color = ['red','blue'] const cars = [ {id:1, colors: ['green']}, {id:2, colors: ['green','red']}, {id:3, colors: ['blue','green']} ] const colorsThatEveryCarHave = color.filter(c => cars.every(car => car.colors.includes(c))) console.log(colorsThatEveryCarHave) // 输出: []
内容的提问来源于stack exchange,提问作者mynameiszsofia
相关产品推荐
相关产品推荐

