当第二个参数是数组长度时剂量拼接起作用?

问题描述 投票:0回答:1

我想实现一个函数,它接受一个数组和一些其他参数,然后从该数组中删除其他参数。 所以我使用了第二个参数的剩余参数,然后使用 Array.from 将其转换为数组, 然后使用 .length 获取其长度以将其用作拼接的第二个参数,但它不起作用。 我知道有更好的方法来解决这个问题,但我想知道为什么它不起作用。

const removeFromArray = function(array, ...number) {
    let numArray = Array.from(number)

    for(let i = 0; i < array.length  ; i++ ){
       if(number == array[i]){
        array.splice( i , numArray.length);
       }
    }
    return array;
};

removeFromArray([2, 1, 2, 3, 4], 1, 2);

期望输出为:

[3, 4]

但它是:

[2, 1, 2, 3, 4]

javascript arrays function splice
1个回答
0
投票

const removeFromArray = 函数(数组,...数字){ 让 numArray = Array.from(numbers);

for (let i = 0; i < numArray.length; i++) {
    let index = array.indexOf(numArray[i]);
    while (index !== -1) {
        array.splice(index, 1);
        index = array.indexOf(numArray[i]);
    }
}
return array;

};

console.log(removeFromArray([2, 1, 2, 3, 4], 1, 2));

© www.soinside.com 2019 - 2024. All rights reserved.