处理 JavaScript 函数中的多个可选参数

tea*_*530 5 javascript arrays function

第一次发帖,基本上是在做 Odin 项目练习 04 - removeFromArray 练习:

https://github.com/TheOdinProject/javascript-exercises/tree/main/04_removeFromArray

我已经通过了第一个测试,但是,我不知道如何编写程序来处理多个可选参数。我知道我需要使用 ...arg,但不太了解如何开始或做什么,或者函数的一般构造,请有人帮助我了解如何进行此操作?下面是我的一个非常糟糕的尝试,它不起作用(甚至不确定我的逻辑是否正确以获得所需的输出):

const removeFromArray = function (array1, ...args) {

    if (args == 3) {
        array1.splice(2, 1);
        return array1;
    } else if (args == 3 || args == 2) {
        array1.splice(2, 1);
        return array1.splice(1,1);
    }
};


console.log(removeFromArray([1, 2, 3, 4], 3, 2));
Run Code Online (Sandbox Code Playgroud)

任何有关如何执行此操作的帮助或建议将不胜感激。谢谢!

小智 7

args是一个参数数组。因此,您只需要过滤原始数据array并过滤掉 array 中的那些元素args

function removeFromArray(array, ...args) {
    return array.filter(x => !args.includes(x))
};


console.log(removeFromArray([1, 2, 3, 4], 3, 2));
Run Code Online (Sandbox Code Playgroud)

给你:

[1, 4]
Run Code Online (Sandbox Code Playgroud)