数组去重的方法

1:数组去重的es6方法,Array.from()或者扩展运算符和 Set 结构相结合

// 以上两种方法都用了Set结构成员的值都是唯一的这一特性,本质上是Set结构进行的去重的工作,而Array.from()和扩展运算符只是将返回的结果转化成数组而已
function dedupe(array) {
  return Array.from(new Set(array)); //方法一返回一个Array.from()包含的set
  return [...new Set(array)] // 方法二,用扩展运算符 
}
dedupe([1, 1, 2, 3]) // [1, 2, 3] 

2:reduce数组去重(图片为reduce的语法)


1.png
let arr4 = [1,3,2,5,3,1,2,7,8];
    let newArr = arr4.reduce((pre,cur)=>{
/*
  1
1,3
1,3,2
1,3,2,5(打印四次)
1,3,2,5,7
undefined
*/
console.log(`${pre}`)
      if(!pre.includes(cur)){
        return pre.concat(cur)
      } else {
        return pre
      }
    },[]);

3:filter过滤的方法(利用下标,比较第一次出现的位置是否相等,若不相等证明这个元素出现了多次则可以排除)

let arr = [1,2,3,4,4,5,6,5,8]
let res = arr.filter((item,index,newArr) => {
    if(index === newArr.indexOf(item)){
        return item
    }
})
console.log(res) // [1,2,3,4,5,6,8]

4:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容