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

如何过滤JS数组中的null、undefined、空字符串等但保留0?

JavaScript数组过滤:保留0,移除指定无效值

直接可用的解决方案

要实现保留0,同时移除undefined、null、空字符串''以及数组连续逗号产生的空元素,直接用filter结合严格判断即可:

const originalArr = [0, undefined, null, '', , 3, 'test', false];
const filteredArr = originalArr.filter(el => {
  return el !== undefined && el !== null && el !== '';
});
// 结果:[0, 3, 'test', false]

为什么之前的方法不生效?

  1. 仅过滤null:只会移除null,undefined、空字符串这类无效值会被保留。
  2. 使用return el != null:这个判断能排除null和undefined,但空字符串''与null松散不等,会被留下;同时多数Lint规则(如eqeqeq)禁止使用松散相等/不等运算符(==/!=),因此触发报错。

关于数组空元素的说明

数组中连续逗号产生的空元素(比如[1,,2]里的空位),filter方法会自动跳过这些空位,不会将其纳入过滤结果,无需额外处理。

处理Lint报错的注意事项

如果Lint规则要求必须使用严格相等运算符,直接用el !== null && el !== undefined替代el != null,再加上对空字符串的判断,既符合规则又能满足需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:15:29