ES6数组去重

数组去重的个人思路:

        let arr1 = [1, 2, 3, 4, 1, 2, 5, 6];
        let arr2 = ["a", "b", "c", "a", "d", "c"];
        let newArr = []; // 创建一个新数组
        for (let [index, item] of arr2.entries()) { // 遍历原数组
            if(!newArr.includes(item)){//  原数组的元素和新数组进行比较
                newArr.push(item) // 选择性添加到新数组里
            }
        }
        console.log(newArr)

ES6Set语法去重

let arr1 = [1, 2, 3, 4, 1, 2, 5, 6];
let set = [...new Set(arr1)]  // [1, 2, 3, 4, 5, 6] 
let arr2 = ["a", "b", "c", "a", "d", "c"];
let set = [...new Set(arr2)]  // ["a", "b", "c", "d"] 

以上两个数组哟Set语法可以完美解决去重这个问题,但是在如下这种数组里面,Set有点无能为力

        let arr3 = [
            {id: 1,name: "张三"},
            {id: 2,name: "老王"},
            {id: 3,name: "小红"},
            {id: 4,name: "小明"},
            {id: 1,name: "王五"},
            {id: 2,name: "李四"},
        ]
        let set = [...new Set(arr3)]
        console.log(set)    // 0: {id: 1, name: "张三"}
                            // 1: {id: 2, name: "老王"}
                            // 2: {id: 3, name: "小红"}
                            // 3: {id: 4, name: "小明"}
                            // 4: {id: 1, name: "王五"}
                            // 5: {id: 2, name: "李四"}

利用对象查找元素的属性

let arr3 = [
            { id: 1, name: "张三" },
            { id: 2, name: "老王" },
            { id: 3, name: "小红" },
            { id: 4, name: "小明" },
            { id: 1, name: "王五" },
            { id: 2, name: "李四" }
        ]
        var result = [];
        let obj = {}; 
        for (var i = 0; i < arr3.length; i++) {

            if (!obj[arr3[i].id]) {

                result.push(arr3[i]);

                obj[arr3[i].id] = true;

                console.log(result)
            }
        }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值