首页 > 解决方案 > 为什么我的 javascript 没有遍历所有参数?

问题描述

我正在从事 Odin 项目,并且正在从事基础知识第 4 部分“removeFromArray”任务。我必须返回一个删除了参数列表中所有元素的数组。它适用于两个参数,但我无法让它适用于四个参数。我的代码如下:

const removeFromArray = function(firstArray, ...toRemove) {
    let modifiedArray = firstArray;

    for (i = 0; i < firstArray.length; i++) {
        if (modifiedArray.includes(toRemove[i])) {
            modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1)
        }    
    }
    return modifiedArray;

}
removeFromArray([1, 2, 3, 4], 7, 2) // works, returns [1, 3, 4]
removeFromArray([1, 2, 3, 4], 3, 2) // also works, returns [1, 4]
removeFromArray([1, 2, 3, 4], 1, 2, 3, 4) //does not work, returns [3, 4]

任何帮助深表感谢。

标签: javascript

解决方案


从数组中拼接会将所有剩余元素向下移动一个,因此您最终会跳过下一个元素。我建议改用Array.prototype.filter


推荐阅读