js中数组去重100种方法之略知一二

本文介绍了三种在JavaScript中实现数组去重的有效方法:通过创建临时对象存储元素、使用Set对象转换数组,以及利用filter方法结合indexOf进行筛选,旨在帮助开发者理解和掌握不同场景下最优的数组去重策略。
                 //1、js中数组去重,
                function findTheDiff(arr) {
                    var result = [];
                    //key:value形式
                    var jsonTemp = {};
                    for(var i = 0; i < arr.length; i++){
                        if(!jsonTemp[arr[i]]){
                            result.push(arr[i]);
                            //必有的步骤,将value设置成true,
                            //再次进入循环,如果是false,说明此元素已经加入到result,无需再次添加
                            //实现去重效果
                            jsonTemp[arr[i]] = 1;
                        }
                    }
                    return result;
                }
                console.log(findTheDiff([1,3,4,3,2,1,4,6,2]));
                
                //2
                const numbers = [1, 2, 1, 1, 2, 1, 3, 4, 1 ];
                const uniq = [...new Set(numbers)]
                // => [ 1, 2, 3, 4 ];
                console.log(uniq);
                const uniq2 = Array.from(new Set(numbers))
                // => [ 1, 2, 3, 4 ];
                console.log(uniq2);

                //3filter方式
                function uniqueArr (arr) {
                    var res = arr.filter(function (item, index, array) {
                        //array.indexOf(item) === index
                        //说明这个元素第一次出现,后面item再出现,此indexOf(item)已经不是index了
                        return array.indexOf(item) === index;
                    });
                    return res;
                }
                console.log(uniqueArr(numbers));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值