You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Vue筛选器逻辑:将OR改为AND以缩小筛选结果范围

Vue产品筛选逻辑从OR改为AND的实现方案

原代码通过Array.some()实现了OR筛选逻辑:只要产品的skill或usage属性匹配任一激活筛选条件就会被保留,导致筛选条件越多结果反而可能越多。要改为AND逻辑(产品需满足所有激活筛选条件),只需调整数组遍历的判断逻辑:

修改后的代码

get filteredProducts() {
  if (!this.activeFilters.length) return this.products
  return this.products.filter(prod => {
    // 所有激活筛选条件都必须匹配产品的skill或usage属性
    return this.activeFilters.every(filter => {
      return prod.skill === filter || prod.usage === filter
    })
  })
}

逻辑说明

  • 将原有的some方法替换为every:some是“任一条件满足即通过”,every是“所有条件都满足才通过”
  • 遍历对象从产品属性数组([prod.skill, prod.usage])改为激活筛选条件数组(this.activeFilters)
  • 对每个筛选条件,检查是否能匹配产品的skill或usage属性,只有所有条件都匹配的产品才会被保留

内容的提问来源于stack exchange,提问作者dbdistribuidoracmj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:30:23