原型当中的添加办法

在数组后面添加一个数字在原型当中添加:

ript>
        /* 创建一个数组 */
        let arr = new Array(1,2,3,4);
        // let result = arr.push(6)    //返回的是数组的长度,该变了原数组
        // console.log(result,arr);

        /* push方法 */
        Array.prototype.myPush = function(data){
            //this => [1,2,3,4]   this.length = 4
            // console.log(this,this.length);
            this[this.length] = data;

            return this.length
        }
        let result = arr.myPush(6);
        console.log(result,arr);
    </script>

 在数组前面添加一个数字在原型当中添加:

  <script>
        /* 创建一个数组 */
        let arr = new Array(1,2,3,4);

        // let result = arr.unshift(99)
        // console.log(result,arr);

        Array.prototype.myUnShift = function(data){
            for(let i = this.length ; i >= 0 ; i--){
                // console.log(this[i]);
                this[i] = this[i-1]
            }
            this[0] = data;
            // console.log(this);
            return this.length
        }

        let result = arr.myUnShift(99)
        console.log(result,arr);
    </script>

  在数组前面删除一个数字在原型当中删除:

<script>
        /* 创建一个数组 */
        let arr = new Array(1,2,3,4); 
        // let result = arr.shift() //干掉第一个,返回的是被干掉的元素
        // console.log(result,arr);

        Array.prototype.myShift = function(){
            //先把第一个元素记录下来,
            let a = this[0]
            //干掉第一个元素,从第二位开始往赋值给一位
            for(let i = 0 ; i < this.length ; i++){
                this[i] = this[i+1]
            }
            //将长度-1
            this.length --
            //返回的是被干掉的元素
            return a;
        }
        let result = arr.myShift()
        console.log(result,arr);
    </script>

  在原型当中数组去重:

<script>
        /* 创建一个数组 */
        let arr = new Array(1,2,3,4,1,2,3,4,5,1,2,3,4,1,2,3,4,1,2,3,4); 
        
        
        //我们要写一个自己的去掉重复的元素
        Array.prototype.norepeat = function(){
            /**
             * 1.创建一个数组
             * 2.遍历那个this
             * 3.在遍历this的时候,判断在数组当中是否有重复的元素出现,有,下一位,没有,就往那个数组添加进去
             */
            let newArr = []
            for(let i = 0 ;i < this.length ; i++){
                //判断this.当中的每一个元素是否存在于newArr里面,有,就下一位,没有就添加到newArr里面去
                  // newArr.indexOf(this[i])  这个在数组里面没有这个数字就返回一个-1
                if(newArr.indexOf(this[i]) === -1){
                    //就往newArr里面添加进去
                    newArr.push(this[i])
                }
            }
            //返回这个数组
            return newArr;
        }

        let result = arr.norepeat()
        console.log(result,arr);
    </script>

   数组去重:

    <script>
        /* 创建一个数组 */
        let arr = new Array(1,2,3,4,1,2,3,4,5,1,2,3,4,1,2,3,4,1,2,3,4); 
        /* 数组去重 对象的key能重复吗? */
        Array.prototype.norepeat = function(){
            /*
                1.创建一个对象
                2.this 这个数组,我们将this这个数组里面的每一个元素都添加到对象的key值里面去
                3.假如对象的key有重复了,那么后面的value会覆盖掉前端value值
            */
            //创建一个对象
            let obj = {}
            let newArr = []
            // obj[key] = value;
            for(let i = 0 ; i < this.length ; i++){
                // console.log(this[i]);
                obj[this[i]] = ''
            }
            // console.log(obj);

            //遍历对象,将对象当中的key值赋给数组
            for(let key in obj){
                newArr.push(+key)
            }
            // console.log(newArr);
            return newArr;
        }
        let result = arr.norepeat()
        console.log(result,arr);
    </script>

  数组去重:

       /* 创建一个数组 */
        let arr = new Array(1,2,1,2,1); 

        Array.prototype.norepeat = function(){
            //数组的去重 数组的排序
            // console.log(this.sort(function(a,b){return a-b}));
            this.sort(function(a,b){return a-b})
            for(let i = 0 ; i < this.length ; i++){
                if(this[i] == this[i+1]){
                    this.splice(i,1)
                    i--
                }
            }
            // console.log(this);
            return this;
        }

        let result = arr.norepeat()
        // console.log(result,arr);
    </script>

  数组去重:

    <script>
         /* 创建一个数组 */
         let arr = new Array(1,2,1,2,1,1,2,3,3,1,2,3,1,2); 
         //Set API 当中的元素不允许重复
        //  let s = new Set(arr)
        //  console.log(s);
        //  console.log(...s);
        //  console.log([...s]);

         console.log([...new Set(arr)]);
    </script>

  ES6提供一个API:

    <script>
         /* 创建一个数组 */
         let arr = new Array(1,2,1,2,1,1,2,3,3,1,2,3,1,2); 
         //Set API 当中的元素不允许重复
        //  let s = new Set(arr)
        //  console.log(s);
        //  console.log(...s);
        //  console.log([...s]);

         console.log([...new Set(arr)]);
    </script>

  

 

posted on 2022-05-06 21:11  吴银  阅读(69)  评论(0)    收藏  举报

导航