数组去重

数组去重的几种方法

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
}
 
原文地址:https://www.cnblogs.com/qq976864507/p/11780644.html