数组去重
数组去重的几种方法
1、Array.prototype.sort():相邻元素去重
相邻元素去重的核心在于Array.sort()能够对数组进行排序。这样相等的数组就会在相邻的位置,通过比较相邻的元素就可以起到去重的作用
let c=[1,2,3,4,5,6,1,2,3]function newArr(arr){ let Arr=arr.sort() let b=[] for(let i=0;i<Arr.length;i++){ if(Arr[i]!==Arr[i+1]){ b.push(Arr[i]) } } return b}2、遍历去重:indexOf
indexOf 方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。首先我们新建一个空数组(arry),如果:
arry.indexOf(数组元素)===-1,那么我们就可以知道arry中不存在元素。let c=[1,2,3,4,5,6,1,2,3]function newArr(arr){ let b=[] for(let i=0;i<arr.length;i++){ if(b.indexOf(arr[i])==-1){ b.push(arr[i]) } } return b}3、循环遍历之:map()/forEach()
map()和forEach()都可以实现遍历数组。所以以上的方法都可以用map()、forEach()改写。下面我只简单的改写一个,其他的改写方式参照即可。
let c=[1,2,3,4,5,6,1,2,3]function newArr(arr){ let b=[] arr.forEach(res=>{ if(b.indexOf(res)==-1){ b.push(res) } }) return b}4、ES6:Set数据结构
Set数据类似于数组,但是成员的值都是唯一的,没有重复的值。它可以接收一个数组,类于:
let a=[1,2,3,1,2] Set(a)=>1,2,3 所以可以使用Set()实现去重。let c=[1,2,3,4,5,6,1,2,3]function newArr(arr){ let b=new Set(arr) let c=Array.from(b) return c}

浙公网安备 33010602011771号