无论是实际工作中还是面试的时候,常常会遇到数组去重的问题,今天就把我所知的数组去重的方法归纳一下,若说的不全,请大神评论区给点idea,以便于完善;
事先定义一个数组和一个空数组(后面会用到)
let arr = [1,2,3,2,3,4,{},{}];
const result = [];
Set 去重
Set 方法对数组进行去重是ES6中最常用的方法,代码比较简洁
Array.from(new Set(arr))
[...new Set(arr)]
两种写法均可对数组进行去重,至于Array.from是把类数组转化为数组, … 扩展符则是将Set后的值转为字符串,所以在其外部加上一个 [] ,将其变成数组
includes 去重
includes用于判断该数组中是否包含某个值
思路: 创建一个新数组,循环原数组,依次判断新数组中是否含有原数组中的值,若存在,则不添加,不存在,则将原数组遍历的值添加进新数组
for(let v of arr){
if(!result.includes(v)){
result.push(v);
}
}
indexOf去重
indexOf 方法判断某个值在数组中是否存在,若不存在,则返回 -1;若存在,则返回该元素在数组中对应的索引值;
思路:与includes相同
for(let v of arr){
if