es6数组去重

文章介绍了如何利用ES6中的Set数据结构来实现数组的去重功能,包括对简单数组和包含复杂对象的数组的去重方法。通过将数组转换为Set,可以自动去除重复值,然后再用扩展运算符或Array.from转换回数组。对于包含复杂对象的情况,文章提出使用JSON.stringify将对象转化为字符串进行比较。
摘要由CSDN通过智能技术生成

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

下面我们就利用set的这一特性实现数组的去重。 

一.简单数组去重

  1.  将数组转成set类型,实现去重
  2. 将set类型转成Array类型

将set类型转成普通数组的方法:

1.扩展运算符[...set] 

2.Array.from(set)

 let list = [1, 2, 3, 4, 5, 2, 499, 155, 66, 72, 666, 5, 2, 5, 6, 5, 55, 15, 56, 24, 5, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
    
 let set = new Set(list)

 let newlist = [...set]//Array.from(set)

//[1, 2, 3, 4, 5, 499, 155, 66, 72, 666, 6, 55, 15, 56, 24]

 console.log(newlist);

 console.log(Array.from(set));

二、复杂数组去重 

  let list = [1, 2, 2, "kerwin", "kerwin", [1, 23, [3.4], [1, 2], 3, { name: "kerwin" }, { age: 100 }, { name: "kerwin" }], undefined, undefined, NaN, NaN]
    function uni(arr) {
        let res = new Set()
        return arr.filter(item => {
            let id = JSON.stringify(item)
            //判断has trun false
            //没有return true
            if (res.has(id)) {
                return false
            } else {
                res.add(id)
                return true
            }
        })

    }
    console.log(uni(list))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vitenode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值