【javascript】数组去重的五种方法

本文介绍了一种在JavaScript中实现数组去重的方法,通过修改Array原型,提供了四种不同的去重实现方案,包括使用for循环、Set集合、map方法结合indexOf方法等,旨在帮助开发者理解和掌握数组去重的多种技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

参考答案1:

Array.prototype.distinct = function() {

        for(var i = 0; i<this.length; i++){

            for(var j = i+1; j<this.length-1;j++){

                if(this[i] === this[j] ){

                    this.splice(j,1);

                    j--;

                }

            }

        }

        return this;

    }

    document.write([1,2,3,1,2,2,2,2,3,3,4,5,6].distinct())    //测试结果为:1,2,3,4,5,6

参考答案2:

Array.prototype.uniq = function(){

    return [...new Set(this)]

}

参考答案3:

Array.prototype.distinct = function(){

        var arr=[];

        this.map(function(d){

            (arr.indexOf(d)<0) && arr.push(d)

        });

        return arr;

    };

参考答案4:

Array.prototype.distinct = function(){

        var arr=[];

        this.map(function(d){

            if(arr.indexOf(d)<0){

                arr.push(d)

            }

        });

        return arr;

    };

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值