小编dot*_*dot的帖子

使用参数的JavaScript过滤器回调

目标是过滤数组并删除其参数列表中指定的所有元素.

例如,给定removeElements([1,2,3,1,2,3,4],2,3),我的输出应为[1,1,4].

function removeElements(arr) {
//I got an error that says **functions** not allowed **inside loop**
  for(var i=1;i<arguments.length;i++){
    arr= arr.filter(function(e){
        return e!==arguments[i];
    });
  }
  return arr;
}
Run Code Online (Sandbox Code Playgroud)

我尝试的第二件事是将过滤器移出for循环.

function removeElements(arr) {
  function isNotEqual(e){
    return e!==this;
  }
  for(var i=1;i<arguments.length;i++){
    arr= arr.filter(isNotEqual,arguments[i]);
  }
  return arr;
}
Run Code Online (Sandbox Code Playgroud)

他们都没有工作.它总是返回[1,2,3,1,2,3,4].你能告诉我用法有什么问题吗?或者在这种情况下使用过滤器的方法是什么?

javascript

1
推荐指数
2
解决办法
8784
查看次数

标签 统计

javascript ×1