用三种以上的方法实现数组去重。

几种不能去掉重复的引用数据类型的写法

原数组、

let arr = [1, 1, "1", "1", null, null, undefined, undefined, /a/, /a/, NaN, NaN, {}, {}, [], []]
复制代码

1.使用 Set

如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。
查看Set详情

let res = [...new Set(arr)] 
   console.log(res)
复制代码

2.使用filter

用于对数组进行过滤。
它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
查看filter详情

let res = arr.filter((item, index) => { 
      return   arr.indexOf(item) === index
   })
   console.log(res)
复制代码

3.使用reduce

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
查看reduce详情

let res = arr.reduce((pre, cur) => {
    return pre.includes(cur) ? pre : [...pre, cur]
}, [])
console.log(res)
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享