常用的数组去重方法

ES5:

  1. 声明一个函数,将数组传进去,在里面新建一个数组循环传进来的数组,利用 indexOf 去新数组中查找是否存在,如果不存在往新数组中添加当前循环的元素,最后把新数组当作函数返回值

ES6:

  1. 利用set 集合不重复特性,先将数组转成set集合再转回 数组, 比如: [...new Set(要去重的数组)]
  2. 利用 filter 进行过滤去重,如下
const 去重后的数组 = 要去重的数组.filter( (当前元素, 当前索引, 原数组) => 当前索引 === 原数组.indexOf(当前元素) );

Filter 实现去重的原理,如图:

利用IndexOf的特性,从左开始找,找到第一个就返回,所以如果前面有存在相同的值,那么当前索引就不可能相等了。

原文地址:https://www.cnblogs.com/xiaolantian/p/12762912.html