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

如何正确从一个数组中移除另一个数组中的所有元素?

问题原因及解决方法

核心问题有两个:

  • 类型不匹配:delete00To04Am数组里的元素是字符串类型(比如'1669410000000'),而timesForAdvert里的是数字类型(比如1669410000000),用!==严格比较时,字符串和数字永远不相等。
  • 逻辑判断错误:你当前的filter条件是把数组元素和整个delete00To04Am数组对象做比较,这永远为true,所以不会过滤掉任何元素。

解决代码

方法1:统一类型为数字后过滤

先把delete00To04Am的字符串元素转成数字,再用includes判断是否需要过滤:

// 读取值并转成数字数组
let delete00To04Am = document.getElementById("time000am400amEveryDay").value;
delete00To04Am = delete00To04Am.split(',').map(str => Number(str));

// 过滤数组
timesForAdvert = timesForAdvert.filter(item => !delete00To04Am.includes(item));

方法2:不转类型,直接转成字符串比较

如果不想修改delete00To04Am的类型,也可以在判断时把timesForAdvert的元素转成字符串:

let delete00To04Am = document.getElementById("time000am400amEveryDay").value;
delete00To04Am = delete00To04Am.split(',');

// 过滤数组
timesForAdvert = timesForAdvert.filter(item => !delete00To04Am.includes(item.toString()));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:15:36