算法day3

1.Array.prototype.newShift();

    用原生 JS 还原 shift 方法,shift 方法的作用是将数组中第一个元素删除,并返回删除的元素,大概思路就是先把数组中第一个元素赋值给一个变量,然后循环数组,将数组中的元素从第二个开始依次赋值给前一个元素,最后将数组长度减 1 ,就可以达到 shift 的效果啦,代码如下。

let arr = [12,34,56,78,90];

    Array.prototype.newShift = function () {
        let first = this[0]
        //循环数组
        for (let i = 0 ; i < this.length-1 ; i++){
            //将数组中从第二个元素开始,依次赋值给前一个元素
            this[i] = this[i+1]
        }
        //将数组长度减1,相当于删除了最后一个元素
        this.length--;
        return first;
    }
    let aa = arr.newShift();
    console.log(aa)

运行结果如下。

2.Array.prototype.newSlice();

     用原生 JS 还原 slice 方法,slice 方法有两个参数,如果不传参数的话,会将原数组返回,如果传一个参数的话,会将该参数作为开始点的索引,并把后面的元素都返回,如果传两个参数的话,第一个参数是开始点的索引,第二个参数是终止点的索引,然后从开始点一直到终止点的元素都返回,但不包括终止点,返回值的类型都是数组;大概思路就是先定义两个变量,一个是开始点,默认值是 0 ,另一个是终止点,初始值是数组的长度,然后对传进来参数的个数进行判断,从而改变开始点和终止点的值,最后从开始点到终止点前一个元素依次添加到一个空数组中并返回,代码如下。

let arr = [12,34,56,78,90]

    Array.prototype.newSlice = function () {
        //定义两个变量,一个是开始的点,初始值为0,另一个为结束的点,初始值为数组的长度,也就是数组最后一个元素的索引加1
        let start = 0;
        let end = this.length;
        //如果传进来的参数只有一个的话,这个数代表从哪里开始,就将这个参数赋值给start
        if (arguments.length == 1){
            start = arguments[0];
        //如果传进来的参数大于等于两个的话,第一个参数代表开始的点,第二个参数代表结束的点,将第一个数赋值给start,将第二个数赋值给end
        }else if (arguments.length >= 2){
            start = arguments[0];
            end = arguments[1];
        }
        //创建一个空数组
        let newarr = [];
        //从start开始到end的前一个元素,依次添加到空数组中
        for (let i = start,j = 0 ; i < end ; i++,j++){
            newarr[j] = this[i];
        }
        return newarr
    }

    let aa = arr.newSlice(1,4)
    console.log(aa)

运行结果如下。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值