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

移除数组中匹配参数的元素返回新数组时遇空数组问题

问题分析与修复

先把你的代码问题拆解清楚:

  • forEach()方法本身没有返回值(永远返回undefined),所以你的if(arrays.forEach(...))条件永远不成立,自然不会往newArray里塞任何元素,结果就是空数组。
  • 逻辑顺序搞反了:你应该遍历原数组的每个元素,判断这个元素是否不在需要移除的args列表里,而不是反过来遍历args去检查数组。
  • 回调里的element是局部变量,外面的newArray.push(element)根本拿不到这个变量,即使条件成立也会报错。

修复后的代码

const removeFromArray = function(arrays, ...args) {
    const newArray = [];
    // 遍历原数组的每个元素
    arrays.forEach((element) => {
        // 判断当前元素是否不在要移除的参数列表里
        if (!args.includes(element)) {
            newArray.push(element);
        }
    });
    return newArray;
}

console.log(removeFromArray([1,2,3], 3)); // 输出 [1,2]

更简洁的写法(可选)

用filter方法一行搞定,逻辑更清晰:

const removeFromArray = function(arrays, ...args) {
    return arrays.filter(element => !args.includes(element));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:49:54