为了账号安全,请及时绑定邮箱和手机立即绑定

急求!!!!一个JavaScript数组去重的例子,看不大懂

急求!!!!一个JavaScript数组去重的例子,看不大懂

呼如林 2019-06-20 10:39:36
在MDN看到的一个例子,新手前端有点儿看不懂,希望有人可以稍微指点一下?functioncombine(){letarr=[].concat.apply([],arguments);//没有去重复的新数组returnArray.from(newSet(arr));}varm=[1,2,2],n=[2,3,3];console.log(combine(m,n));//[1,2,3]主要是combine(m,n)这里有点不大明白参数是怎么传入函数的?还有letarr=[].concat.apply([],arguments)这里也不大明白实现原理以及为什么不直接[...newSet(arr)]来进行数组去重啊?上面的方法比这种要好在哪里呢?
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

combine函数没有定义参数,是直接从arguments里面取的,这样更具灵活性,同样也会让调用者不明白这个函数的到底应该怎么传参,这个还是看自己怎么取舍吧。使用arguments,你可以传入多个数组,不限制于参数列表。
[].concat.apply([],arguments),是因为arguments不是数组,只算是个类数组,使用使用apply的方法,将参数里面的多个数组进行concat合并。
最后通过newSet(arr)对数组去重,出重完成后返回的值也是类数组,所以再加一层Array.from,保证最后输出的是数组形式。
不知道这样讲,你没有清楚。
                            
查看完整回答
反对 回复 2019-06-20
  • 2 回答
  • 0 关注
  • 336 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信