常用的数组去重方法
ES5:
- 声明
一个函数,将数组传进去,在里面新建一个数组,循环传进来的数组,利用indexOf去新数组中查找是否存在,如果不存在就往新数组中添加当前循环的元素,最后把新数组当作函数返回值。
ES6:
- 利用
set集合不重复特性,先将数组转成set集合再转回 数组, 比如:[...new Set(要去重的数组)] - 利用
filter进行过滤去重,如下
const 去重后的数组 = 要去重的数组.filter( (当前元素, 当前索引, 原数组) => 当前索引 === 原数组.indexOf(当前元素) );
Filter 实现去重的原理,如图:


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

浙公网安备 33010602011771号