目标是过滤数组并删除其参数列表中指定的所有元素.
例如,给定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