我想过滤掉等于输入参数的arr中的元素。我想知道为什么这不起作用。为什么我不能使用循环过滤()出元素?
function destroyer(arr) {
// Remove all the values
var newarr = arr.slice();
var i = 1;
while (i < arguments.length){
newarr = newarr.filter(function(num){
if (num == arguments[i]){
return (false);
}
return (true);
});
i++;
}
return newarr;
}
驱逐舰([3,5,1,2,2],2,3,5);
应该返回[1];
我解决它使用拼接()代替方式:
function destroyer(arr) {
var i = 1;
while (i < arguments.length){
var j = 0;
while (j < arr.length){
if (arr[j] == arguments[i]){
arr.splice(j,1);
j = j;
}
else
j++;
}
i++;
}
return arr;
}
啊啊啊我看。这就说得通了。非常感谢。 – earthyearth