数组去重,通常会在面试的时候才会碰到,要求手写数组去重方法的代码。若是是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官颇有可能对你另眼相看。前端
在实际项目中碰到的数组去重,通常都是后台去处理,不多让前端处理数组去重。虽然运用到的几率较低,但仍是须要了解一下,以防面试的时候被问到。面试
数组去重的方法:数组
1、利用ES6 Set去重(ES6中最经常使用)数据结构
若是不考虑兼容性,这种去重的方法代码最少。这种方法还没法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法。spa
2、利用for嵌套for,而后splice去重(ES5中最经常使用)3d
对象
双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值。blog
3、利用indexOf去重排序
新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,若是有相同的值则跳过,不相同则push进数组。递归
4、利用sort()

利用sort()排序方法,而后根据排序后的结果进行遍历及相邻元素比对。
5、利用对象的属性不能相同的特色进行去重

6、利用includes

7、利用hasOwnProperty

利用hasOwnProperty 判断是否存在对象属性
8、利用filter

9、利用递归去重
10、利用Map数据结构去重

建立一个空Map数据结构,遍历须要去重的数组,把数组的每个元素做为key存到Map中。因为Map中不会出现相同的key值,因此最终获得的就是去重后的结果。
11、利用reduce+includes
喜欢的能够点击关注小编哦~天天更新~