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

ReactJS搜索功能仅最后一个筛选条件生效,前面规则匹配无返回结果

问题根因

你代码的问题出在return后的条件写法:JavaScript中的逗号运算符会按顺序执行所有逗号分隔的表达式,但最终仅返回最后一个表达式的执行结果。因此你前面两个字段的匹配判断不会对过滤结果产生任何影响,只有最后一条description字段的匹配规则生效。

修复方案

根据你的搜索需求选择对应逻辑运算符替换逗号即可:

  • 若需要任意字段匹配就命中搜索结果(常规搜索场景的默认需求),使用逻辑或运算符||连接三个条件,同时可以提前将搜索词转小写减少重复计算,优化性能,修正后代码如下:
handleSearch = (event) => {
  const searchWord = event.target.value;
  // 提前统一转小写,避免每个字段判断时重复执行
  const lowerSearchWord = searchWord.toLowerCase();
  const newFilter = this.state.data.filter((value) => {
    return (
      value.programName.toLowerCase().includes(lowerSearchWord) ||
      value.endTime.toLowerCase().includes(lowerSearchWord) ||
      value.description.toLowerCase().includes(lowerSearchWord)
    )
  });
  this.setState({
    data1: newFilter,
  });
};
  • 若需要三个字段同时匹配搜索词才命中结果,替换为逻辑与运算符&&连接三个条件即可。

内容的提问来源于stack exchange,提问作者Sai Manoj v

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:45:03