push方法重构
Array.prototype.myPush = function(){
// arr[arr.length] 将新增数组元素添加给原数组元素最后一项下一项
// 循环遍历实际参数 'tom' 'jack' 'zack'
for(var i=0;i<arguments.length;i++){
// 将每一个实际参数依次从末尾添加给原数组
this[this.length] = arguments[i]
}
return this.length
}
var arr = [1,2,3,4];
var res = arr.myPush('tom','jack','zack','world');
console.log(res,arr)
shift方法重构
Array.prototype.myShift = function(){
// 返回第一项
var first = this[0];
for(var i=0;i<this.length;i++){
// 将后面的数组元素往前移动一项
this[i] = this[i+1]
}
this.length--;
return first
}
var arr = [1,2,3,4,5];
var res = arr.myShift();
console.log(res,arr);
unshift方法重构
Array.prototype.myUnshift = function(){
// 获取新数组长度
var length = this.length + arguments.length;
for(var i = length-1;i>=0;i--){
// 当i等于arguments.length-1 原数组元素移动完成
if(i>arguments.length-1){
this[i] = this[i-arguments.length]
}else{
this[i] = arguments[i]
}
}
return length
}
var arr = [1,2,3,4,5];
var res = arr.myUnshift('tom','larry','hello');
console.log(res,arr);