数组去重古和今

原创 年树先生 译文 前端技术 18628阅读 12 天前 举报

关于数组去重这个问题,但其实我觉得这只是一件很小的事,何必弄得好像实现的方法越复杂就越厉害一样。废话不多说,这里我只介绍我所认可的两种方法。

  第一种,就是很普通的思维,比如,对于[1,2,2,3,3,3,4,4,4,4]这个数组来说,我们的思路就是,新建一个空的数组,然后对这个要处理的数组做遍历,遍历的每一项都会问一下新数组:“你有没有存过我啊?”,存过(新数组.indexOf(i)>0),那么就不再存了;没存过(新数组.indexOf(i)==-1),就存进去。所以就有了如下代码:

  在这里,我用一个自执行的匿名函数对数组做了个遍历,由于newArr是一个全局变量,在执行后不会被销毁,而是返回出去,最后打印的结果正是[1,2,3,4];

  这是es5最朴实无华的写法,可以说是一种“古代的写法”吧,es6中有一种结构叫set,它天生就自带互异性,就是说肯定不会有重复的,看一段代码就知道了。

最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

评论 ( 1 )
最新评论
AllenHee 3 天前 1F

第一个newArr你确定可以打印出来吗?