JS数组去重

117 阅读1分钟

1、用Array.form()和Set去重

let arr = [1,2,3,2,3,2,2,4,5,5,6,6]
console.log(Array.from(new Set(arr)))  //[1,2,3,4,5,6]

2、展开运算符和set去重

let arr = [1,2,3,2,3,2,2,4,5,5,6,6]
console.log([...new Set(arr)])   //[1,2,3,4,5,6]

3、用includes去重

let arr = [1,2,3,2,3,2,2,4,5,5,6,6]
let arr2 = []
for(let i=0;i<arr.length;i++){
  if(!arr2.includes(arr[i]){
     arr2.push(arr[i])
  }
}
console.log(arr2)   //[1,2,3,4,5,6]

4、利用对象属性名唯一去重

let arr = [1,2,3,2,3,2,2,4,5,5,6,6];
let obj = {}, arr2 = [];
for(let i=0;i<arr.length;i++){
    obj[arr[i]] = arr[i]
}
for(let key in obj){
    arr2.push(obj[key])
}
console.log(arr2)   //[1,2,3,4,5,6]

5、用迭代方法filter和indexOf()去重,其他循环迭代方法和此方法类似就不一一赘述了

let arr = [1,2,3,2,3,2,2,4,5,5,6,6];
arr.filter((item,index)=>{
    return arr.indexOf(item) === index;
})