数组方法实现(三)————数组方法shift()

来源:互联网 发布:arm单片机型号有哪些 编辑:程序博客网 时间:2024/06/04 19:25

shift()方法

shift()方法

1. 定义:从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
2. 语法: arr.shift()
3. 参数:/
4. 返回值:从数组中删除的元素(当数组为空时返回undefined)。

代码如下:
方法一:

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; var arr2 = [];Array.prototype.copyShift = function() {    var result = [],        newArr = [];    result = this[0];    for(var i = 1; i < this.length; i++) {// 将数组的第二个至最后一项的值赋值给newArr        newArr[newArr.length] = this[i];    }    for(var i = 0; i < newArr.length; i++) { //newArr赋值给原数组        this[i] = newArr[i];    }    this.length = newArr.length;    return result;};arr1.copyShift();   // 1arr1; // [2, 3, 4, 'A', 'B']arr2.copyShift();  // undefinedarr2; // []

方法二:将上述代码修改为如下:(去掉中间数组newArr,直接在原数组上操作)

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; var arr2 = [];Array.prototype.copyShift = function() {    var result = [];    result = this[0];/*     for(var i = 1; i < this.length; i++) {// 将数组的第二个至最后一项的值赋值给newArr        newArr[newArr.length] = this[i];    }    for(var i = 0; i < newArr.length; i++) { //newArr赋值给原数组        this[i] = newArr[i];    }    this.length = newArr.length; */    // 将数组的后一项赋值给前一项    for(var i = 0; i < this.length; i++) {        this[i] = this[i + 1];    }    if(this.length > 1) {//去掉数组最后一项        this.length = this.length - 1;    }    return result;};arr1.copyShift();   // 1arr1; // [2, 3, 4, 'A', 'B']arr2.copyShift();  // undefinedarr2; // []