如何创建 JavaScript 函数以从数组中删除特定参数?

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

我编写了以下代码,但由于没有得到预期的输出,因此测试失败了

[1, 2, 4]

const removeFromArray = function(array,...removeThis) {
   for (let i=0;i<removeThis.length;i++){
      array.splice(array.indexOf(removeThis),1);
   }
   return array;

};

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

为了调试,我尝试将各个变量打印到控制台。结果如下:

  1. removeThis.length
    返回 1(有效)
  2. removeThis
    返回
    [3]
  3. array.indexOf(removeThis)
    返回 -1(这不起作用)

来自文档:

Array 实例的 indexOf() 方法返回在数组中可以找到给定元素的第一个索引,如果不存在则返回 -1。

我不确定为什么我的 indexOf() 不起作用以及如何修复这段代码以获得 [1,2,4] 的预期输出。

我当前的输出是[1,2,3]。

javascript
1个回答
-1
投票
const removeFromArray = function(array, removeThis) {
    const newArr = []
    for (let i=0;i<array.length;i++){
        if(array[i] !== removeThis){
          newArr.push(array[i])
        }
    }
    return newArr;
};
© www.soinside.com 2019 - 2024. All rights reserved.