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

JavaScript使用filter函数触发类型错误,如何正确修改过滤条件

错误原因

你当前编写的过滤条件element !== 'product' || element !== 'auth'存在逻辑错误:

  • 任意字符串不可能同时等于product和auth两个不同的值,因此这个条件永远返回true,完全起不到过滤效果,这就是报错提示的核心含义。
  • 举个实际例子:当元素是product时,element !== 'auth'的判断结果为真,整个表达式返回真,该元素会被错误保留;当元素是auth时,element !== 'product'的判断结果为真,同样会被错误保留。
修复方法

有两种常用写法,均可实现排除product和auth两个元素的需求:

  1. 将逻辑或||替换为逻辑与&&,逻辑含义为保留既不等于product也不等于auth的元素
filter(element => element !== 'product' && element !== 'auth')
  1. 用数组includes方法实现,后续需要新增排除项时直接修改数组即可,维护成本更低:
filter(element => !['product', 'auth'].includes(element))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:04