For 循环中的 Javascript 过滤器函数

布拉德·坎宁安

我能够使用 .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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章