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

Array Filter未调用去重辅助函数的问题及解决咨询

数组过滤去重的问题修复

问题根源

你在使用filter方法时犯了一个关键错误:filter需要传入一个回调函数,但你直接写了!checkForDuplicate(item, searchToSave)——这是一个立即执行的表达式(而且此时item未定义),不是会被filter调用的回调。所以checkForDuplicate函数根本没被正确触发,console.log自然不会执行。

正确写法

你需要用箭头函数把checkForDuplicate包装成filter的回调,让filter遍历数组时,把每个元素作为参数传入:

case ON_SET_RECENT_SEARCH: {
  const searchToSave = action.payload;

  const filteredSearches = state.recentSearches.filter(item => 
    checkForDuplicate(item, searchToSave)
  );

  return {
    ...state,
    recentSearches: [...filteredSearches, searchToSave] // 按需调整,通常需将新搜索项加入结果
  };
}

补充说明

你的checkForDuplicate函数逻辑是对的:它返回!isDuplicate,也就是让filter保留非重复的元素,符合去重需求。如果后续发现去重逻辑不符合预期,再调整isDuplicate的判断条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:36:10