参数arguments

yuhuangdadike 2017-08-13 11:28:38
去除数组中任意多个值[/code]
function destroyer(arr) {
// Remove all the values
var arg=arguments;
var temp;
temp=function(value){return value!=arg[i];};
for(var i=1;i<arguments.length;i++){
arr=arr.filter(temp);
}
return arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);

上述可以正确得到 [1, 1]
function destroyer(arr) {
// Remove all the values
//var arg=arguments; 这句注释后
var temp;
temp=function(value){return value!=arguments[i];}; //arg[i]改为arguments[i]
for(var i=1;i<arguments.length;i++){
arr=arr.filter(temp);
}
return arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);

结果变成了 [1, 2, 3, 1, 2, 3]
WHY????
...全文
212 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
似梦飞花 2017-08-13
  • 打赏
  • 举报
回复
第二个arguments是temp函数的arguments 不是destory的

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧