我能够使用 .filter() 和 For 循环完成任务,但不确定为什么我不能在第二个示例中使用该格式。第一个例子工作正常。
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;
withreturn num!==arguments[i]
但arguments[i]
似乎没有返回数值。
因为arguments
在那时指的是不同的函数参数。
每次输入一个函数,arguments
都会引用当前正在执行的函数参数。arguments
仅引用顶级函数参数没有多大意义。
例子:
function a() {
console.log(arguments[0]);
var b = function() {
console.log(arguments[0]);
};
b('This is b');
}
a('This is a');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句