改变数组原型上的一些方法 ?

1,100 阅读1分钟

1.原型重构:数组内置类的原型上的方法是可以修改的,但是不可以重构


实现数组去重

第一种:去重并排序

/*

Array.prototype.unique = function(){

    //this就相当于ary

     var obj = {};

     this.forEach(item => {

     obj[item] = item;//把数组的每一项付给定义的obj的对应下表的每一项

     })

      this.length = 0;//把数组清空

           for (var k in obj ){//循环对象的每一项

          this.push(obj[k]);//把数组的值当做key存进obj

          }

ary.unique();

}

*/

第二种:

Array.prototype.unique = function(){

     let arr = [...new Set(this)]//去重:这个方法是数组去重最新的

    this.length = 0;//清空数组

   arr.forEach(item =>this.push(item))//循环数组 ,再把每一项放进数组

     ary.unique();

}

第三种:

Array.prototype.unique = function(){

     var obj = {};//开一个堆内存

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

           if(obj.hasOwnProperty(this[i])){//如果有这一项了

                  this.splice(i,1);//删除这一项

                   i--;//数组长度减一

            }else{

                  obj[this[i]] = this[i];//否则当对象的每一项个数组的项相等了 就赋值

             }

       }

   ary.unique();

}