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

这道题目中要求的是在 Array 本地对象增加一个原型方法,它用于删除数字数组中重复的数字(可能有多个),返回值是一个包含被删除的重复条目的新数组.

所以在做这道题目之前我们先要理解JavaScript 中 原型原型对象 ,如果还有不清楚的情戳下方链接了解哦>_<
https://blog.csdn.net/lhrdlp/article/details/106259275

既然是和数组去重相关的题目,我们就先来看普通的数据去重是怎样做的???
看下面的代码:

function fun(arr) {
            let length = arr.length;
            arr.forEach(function(index,item){
               for(let i = index + 1 ; i < length ; i++) {
                   if(item == arr[i]) {
                       arr.splice(i,1);
                    //    i--
                   }
               }
                
            })
            return arr;
        }

这就是一个简单的数据去重的函数,他可以去重数组中重复的项,但是我们并没有将它添加到 Array 本地对象的原型上面.

Array对象增加原型方法的基本操作如下:

Array.prototype.fun = function() {
}

给数组的原型上添加了 fun 方法.

注意题目,这并不是一道简单的数组去重的题目,它用于删除数字数组中重复的数字(可能有多个),返回值是一个包含被删除的重复条目的新数组.

所以我们需要一个空数组来保存被删除的重复条目.
示例代码如下:

        Array.prototype.distinct = function(){
        //定义存储删除项目的数组
            let result = new Array;
            for(var i = 0 ; i < this.length ; i++) {
                for(var j = i+1; j < this.length;j++) {
                    if(this[i] == this[j]) {
                    //先将重复的项目在原数组中删除,然后将它存入result数组
                        result.push(this.splice(j,1));
                        j--;
                    }
                }
            }
            return result;
        }

我们通过打印 Array.prototype 来观察我们是不是已经成功添加了 distinct 方法:
在这里插入图片描述
可以看到我们的distinct 方法已经成功添加.

我们就可以调用它,观察一下结果:

        let arr = [0,0,0,1,2,3,2,1,2,3,4];
        console.log(arr.distinct());     

打印的结果如下:
在这里插入图片描述
里面存储的就是重复的被删除的数组条目.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值