javascript - 关于fliter和arguments,无法过滤出结果
高洛峰
高洛峰 2017-04-11 12:19:39
[JavaScript讨论组]

先看代码

function destroyer(arr) {
  var newArr=arr.filter(function(val){
    return val>arguments[1];
  });
  console.log(arguments[1]);
  console.log(newArr);
}

destroyer([1, 2, 3, 4, 5, 6], 2, 3);

过滤的结果为

我是想把小于2的数值过滤掉,如果把arguments[1]改为arguments[2],直接就是空的数组

如果把arguments[1]直接改成2就能正常过滤了,请问是什么原因呢?我typeof arguments[1],显示的也是number类型啊,为啥只有直接用数字才能正常过滤?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHPz

因为你的arguments是function(val)的arguments

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号