1.pop()
// 1.pop() 删除末尾的数
Array.prototype.mypop = function () {
let num = this[this.length - 1]
this.length--;//数组最后一个数删除(重要)
return num
}
2.push()
//2.push() 从末尾添加数
Array.prototype.mypush = function () {
this[this.length] = arguments[0];
return this.length;
}
3.shift()
Array.prototype.myshift = function () {
let num = this[0];
for (let i = 1; i < this.length; i++) {
this[i - 1] = this[i]
}//将数组往前移一位
this.length--;
return num;
}
4.unshift()
// 4.unshift() 数组前添加元素
Array.prototype.myunshift = function () {
let len = this.length;
this[len] = 0;
for (let i = len; i > 0; i--) {
this[i] = this[i - 1];
this[i - 1] = arguments[0];
}
return this.length
}
5.slice()
// 5.slice()截取数组
Array.prototype.myslice = function () {
let arr = [];//储存返回的数组
//有两个参数时的情况
if (arguments.length == 2) {
if (arguments[0] > arguments[1]) return "error" //第一个参数小于等于第二个参数
if (arguments[0] < 0) return "error" //第一个参数小于0
for (let i = arguments[0]; i < arguments[1]; i++) {
arr.mypush(this[i])
}//两个参数且正常
}
else {
if (arguments[0] > 0) {
for (let i = arguments[0]; i < this.length; i++) { arr.mypush(this[i]) }//只有一个参数且为正数时,截取该数直到最后
}
if (arguments[0] < 0) {
for (let i = this.length - 1; i >= this.length - (-arguments[0]); i--) {
if (i < 0) continue
arr.mypush(this[i])
}
}//只有一个参数且参数小于0时,从后面开始截取
}
return arr
}