数组的push、pop、shift、unshift方法功能与重构
数组的方法:push、pop、shift、unshift
数组的push方法
功能:
在尾部添加一个或者多个元素,并且返回数组的新长度,用法:
var i=0;
while(arr.push(i++)<10);
console.log(arr);
重构
function array_push(arr){
if(arr==undefined || arr.constructor!==Array) throw new Error("错误参数");
if(arguments.length===1) return arr.length;
for(var i=1;i<arguments.length;i++){
arr[arr.length]=arguments[i];
}
// 给数组尾部一旦添加元素,arr.length就会自动重设
return arr.length;
}
数组的pop方法
功能:
删除数组尾部的一个元素,并且返回被删除的元素。用法:
var arr=[4,3,2,1];
var item=arr.pop();
console.log(item,arr);
重构
function array_pop(arr){
var item=arr[arr.length-1];
arr.length--;
return item;
}
数组的unshift方法
功能:
向数组的头部添加一个元素,并且返回数组的新长度,用法:
var arr=[1,2,3];
var len=arr.unshift(0);
console.log(len,arr);
重构:
function array_unshift(arr) {
if (arr == undefined || arr.constructor !== Array)
throw new Error("错误参数");
if (arguments.length === 1) return arr.length;
var len = arguments.length - 1; //当前添加参数数量
arr.length = len = len + arr.length; //添加元素后数组的新长度
while (len > 0) {
if (len > arguments.length - 1) {
arr[len - 1] = arr[len - arguments.length];
} else {
arr[len - 1] = arguments[len];
}
len--;
}
return arr.length;
}
数组的shift方法
功能:
删除数组头部的一个元素,并且返回被删除的元素。具体用法如下:
var arr = [1, 2, 3, 4];
arr.shift();
console.log(arr);
重构
function array_shift(arr){
if(arr.length===0) return;
var item=arr[0];
for(var i=0;i<arr.length-1;i++){
arr[i]=arr[i+1];
}
arr.length--;
return item;
}