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

React中基于数组类型category实现产品复选框过滤求助

解决方案:基于数组类型分类的产品过滤

核心逻辑调整

由于你的产品数据中category是数组类型(每个产品可归属多个分类),不能直接用纯文本/ID的全等对比。需要通过检查产品分类数组与选中分类的交集来实现过滤:

代码实现

假设你的selectedCategory是存储选中分类ID的数组,在过滤产品时替换为以下逻辑:

// 假设products是你的产品数据源,selectedCategory是已选中的分类ID数组
const filteredProducts = products.filter(product => {
  // 未选中任何分类时,返回全部产品
  if (selectedCategory.length === 0) return true;
  // 判断产品的分类数组中是否包含至少一个选中的分类ID
  return selectedCategory.some(id => product.category.includes(id));
});

逻辑说明

  • selectedCategory.length === 0:处理初始无选中状态,避免用户看不到任何产品
  • Array.some() + Array.includes():只要产品的分类数组里有一个ID在选中列表中,就保留该产品(适用于「多选分类,满足任一即显示」的场景)

补充:精准匹配所有选中分类

如果需要实现「必须包含所有选中分类才显示」的逻辑,将some替换为every即可:

return selectedCategory.every(id => product.category.includes(id));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:25:54