我能够使用.filter()和For循环完成任务,但不知道为什么我不能在第二个例子中使用该格式。第一个例子很好。
myNumber
尝试将function destroyer(arr) {
for(i=1; i < arguments.length; i++){
number = arguments[i];
arr = arr.filter(function(num){
return num !== number;
});
}
return arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
替换为return num !== number;
,但return num!==arguments[i]
似乎未返回数值。
答案 0 :(得分:3)
因为arguments
在那时引用了不同的函数参数。
每次输入函数时,arguments
将引用当前正在执行的函数参数。 arguments
只引用顶级函数参数是没有意义的。
示例:
function a() {
console.log(arguments[0]);
var b = function() {
console.log(arguments[0]);
};
b('This is b');
}
a('This is a');
&#13;