pop 方法
var arr=[1,7,4,9,3];
Array.prototype.ppop = function () {
var arr = this;
arr.length--;
return arr;
};
console.log(arr.ppop());
push 方法
var arr = [1, 7, 4, 9, 3];
Array.prototype.ppush = function (value) {
this[this.length] = value;
return this;
};
console.log(arr.ppush(2));
slice 方法
var arr = [1, 7, 4, 9, 3];
Array.prototype.sslice = function () {
var star = arguments[0] < 0 ? this.length + arguments[0] : arguments[0];
var end = arguments[1] < 0 ? this.length + arguments[1] : arguments[1];
var newArray = [];
newArray.length = end - star;
for (var i = star, j = 0; i < end; i++, j++) {
newArray[j] = this[i];
}
return newArray;
};
console.log(arr.sslice(-3, -1));
splice方法
備注:這個(gè)實(shí)現(xiàn)比起 pop 稚瘾,push 略有復(fù)雜卸勺,應(yīng)該是數(shù)組方法中最難的方法了乡洼。
var arr = [1, 7, 4, 9, 3];
Array.prototype.ssplice = function () {
var dele = [];
dele.length = arguments[1];
var arr = this;
//刪除指定元素
for (var i = 0, key = arguments[0]; i < arguments[1]; i++, key++) {
dele[i] = arr[key];
arr[key] = arr[key + arguments[1]];
}
arr.length -= arguments[1];
var addCount = arguments.length - 2;
//移動(dòng)位置為添加的元素預(yù)留位置
arr.length += addCount;
for (var move = arr.length - 1; move > arr.length - addCount - arguments[0]; move--) {
arr[move] = arr[move - addCount];
}
//添加新元素
for (var addArr = arguments[0], newNumber = 2; addArr < addCount + arguments[0]; addArr++, newNumber++) {
arr[addArr] = arguments[newNumber];
}
return dele;
};
console.log(arr.ssplice(2, 2, 6, 4));
console.log(arr);