javaScript 重写unshift()方法

Array.prototype.unshift()是数组原型中的非静态方法,用于在数组开头插入一个或多个元素,并且返回数组长度,参数是要插入的值.并且原值是要改变的

在了解本来的功能之后就可以开始重写了

//将重写的方法添加到原型当中
 Array.prototype.myUnshift = function() {
            //这里我们从后往前遍历,因为是在数组前面添加元素,这样就不会丢失数据,长度是原来数组的长度加上要添加的元素个数 
            for (var i = this.length + arguments.length - 1; i >=  0; i--) {
         //因为要改变原值 所以使用if-else 让原来的数组往后推arguments.length个位置
                if (i > arguments.length - 1) {
                    this[i] = this[i - arguments.length];
                } else {
                    //这里再前面直接赋值要添加的元素即可
                    this[i] = arguments[i];
                }
            }
            //这里并没有返回数组长度而是直接返回了数组
            return this;
            // console.log(typeof copy);
        }
        //定义一个数组
        var a = [1, 2, 3, 4, 5, 6];
        //声明一个变量接受返回值
        var result = a.myShift(0, 12);
        //进行对比
        console.log(a);
        console.log(result);

这样就完成了unshift()方法的重写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值