数组去重的几种方式

93 阅读1分钟

1.利用双重for循环去重

let  arr[2,3,4,2,3,13,2,45]
function fn(arr ) { 
let newarr = [], 

for (let i=0; i<arr.length; i++) 
{ for (let j=i+1; j<arr.length; j++) { 
if (arr[i] === arr[j]) { 
j = ++i;
} }
newarr.push(arr[i]) } 
return newarr }

2.set

利用es6 新增 set类似一个数组特点是元素是唯一的,本身是一个构造函数

let  arr[2,3,4,2,3,13,2,45]
fuction  fn(array){
let  a=new set(array)
//将其转化数组
 return   array.from(a)  
 
}
fn(arr0

3.indexof

indexof组的indexOf()方法可返回某个指定的元素在数组中首次出现的位置如果没有则返回-1

let  arr[2,3,4,2,3,13,2,45]
fuction   fn(array){
let newarr=[]
for(let  i=0;i<array.length;i++){
if(newarr.indexof(array[i])!==-1){
newarr.push(arrar[i])
}
}
}
fn(arr)

4 includes 去重

let  arr[2,3,4,2,3,13,2,45]
fuction   fn(array){
let  newarr=[]
for(let  i=0;i<array.length;i++){
if(!newarr.include(array[i])){
  newarr.push(array[i])  }
}


}
fn(arr)

5利用filter和indexof去重

let  arr[2,3,4,2,3,13,2,45]
function distinct4(arr) { 
return arr.filter((v, i, array) => array.indexOf(v, i+1) < 0) }