For循环中的Javascript过滤函数

时间:2017-08-10 20:44:45

标签: javascript

我能够使用.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]似乎未返回数值。

1 个答案:

答案 0 :(得分:3)

因为arguments在那时引用了不同的函数参数。

每次输入函数时,arguments将引用当前正在执行的函数参数arguments只引用顶级函数参数是没有意义的。

示例:

&#13;
&#13;
function a() {
  console.log(arguments[0]);
  var b = function() {
    console.log(arguments[0]);
  };
  b('This is b');
}

a('This is a');
&#13;
&#13;
&#13;