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

请解释这段JavaScript数组过滤代码及!rem.includes(a)的作用

代码逻辑解析

先看完整代码:

const rm=(arr, ...rem)=>arr.filter(a=>!rem.includes(a))

console.log(rm([1, 2, 3, 4], 3, 2));
// 输出结果: [1,4]

核心逻辑拆解

  • filter方法的作用是保留回调函数返回true的元素,最终生成新数组。
  • rem.includes(a)用来判断当前遍历的元素a是否存在于要移除的集合rem中:
    • 若a在rem里(比如例子中的2、3),rem.includes(a)返回true;
    • 若a不在rem里(比如例子中的1、4),rem.includes(a)返回false。
  • 加!取反的原因:我们的目标是移除那些在rem里的元素,所以需要让filter保留不在rem里的元素。取反后:
    • 当a在rem里时,!true变为false,filter会丢弃这个元素;
    • 当a不在rem里时,!false变为true,filter会保留这个元素。

这就实现了从原数组arr中移除所有rem参数指定元素的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:55:18