前言
数组去重方法有很多很多,目前去重方法最火的当属是ES6方法new Set,一手 [...new Set(Array)]简洁又明了,但是在做一些政企项目时,那就不得考虑兼容性(ie)的问题,身为开发者(打工人)的我们更不能左右这些问题,多会几种方法也能为自己在面试中加分/开发中游刃有余.
正文
测试统一数据
1.利用对象key值不重复的特性
利用对象key值不会重复的特性,来协助我们实现数组去重
方法思路:
-
创建一个空对象,将数组循环把数组项添加至空对象作为key值(由于key值特性不重复),value值随意
-
然后用ES6方法:Object.keys()取出对象的key值,以数组形式返回,就会得到去重后的数组<因为对象key值是字符串形式,如果影响的话可自行改变数据类型,不建议可忽略>
2.利用查询方法(find,findIndex,filter,indexOf,some,every等等)
利用众多查询方法的特性,来筛选重复数组项
利用find(返回第一个满足条件的数组项,找不到情况下返回undefined)
利用findIndex(返回第一个满足条件数组项的索引号,找不到情况下返回-1)
还是利用这些方法找不到的特性,来筛选重复项,这里就不再一 一展示了 你可以自己动手试试,都是照葫芦画瓢,我相信你可以的 你不比别人差劲
3.数组去重老将ES6方法 new Set()
new Set这个方法,如果不考虑兼容性的话 还是力推的,非政企项目都推荐使用(简洁明了)相比其他方法,new Set()精炼太多
最后总结
关于数组去重的方法有很多很多,对操作数组熟练程度越来越高 就会慢慢有一套自己风格的处理方法,首先要对各种数组方法的返回条件/没找到又返回什么熟练,熟悉每一个方法,看到一个数组,脑海里就浮现出几种处理方法,那便是最好的