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

JSON条件过滤问题:为何无法匹配包含指定Interest_area的条目?

问题分析与解决方案

你的代码之所以只能匹配到AB-004,核心问题出在匹配Interest_area的条件上:

你用了严格相等判断o.Interest_area === "Business",但AB-006的Interest_area值是"Environment , Business "——里面不仅有"Business",还包含其他内容和多余空格,严格相等要求字符串完全一致,所以自然匹配不到这条数据。

修正后的代码

let search = 'Course information session'; 
let result = arr.filter(o=> 
  o.Session_type === search && 
  o.Interest_area.trim() !== '' && 
  // 替换严格相等为包含判断,同时处理前后空格
  o.Interest_area.trim().includes("Business")
);
console.log(result);

关键修正点说明

  • 替换匹配逻辑:把=== "Business"改成trim().includes("Business"),先去除Interest_area前后的冗余空格,再判断字符串是否包含"Business",这样就能覆盖像AB-006这种包含目标关键词但还有其他内容的情况。
  • 移除多余的去重操作:[...new Set(...)]在这里完全没必要——filter返回的是原数组中符合条件的独立对象,不存在重复,而且Set对引用类型的对象无法正确去重(因为每个对象的内存地址不同),反而可能导致逻辑冗余。

运行修正后的代码,就能同时得到AB-004和AB-006两条符合要求的数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:06:49