1. push方法是给数组添加一个或多个元素,直接在原来数组的基础上修改
2. 那么我们可以把push重写
思路:push是在数组的第length位按照顺序依次把参数添加进去
var arr = [1,2,3]; ---> length:3
arr.push('a') ---> arr.[arr.length]:'a'
arr = [1,2,3,"a"]; ---> length:4
参数'a',被加到了 arr[3] 的位置。
那么就可以重写push
push一个元素的情况
Array.prototype.push = function(targer) {
this[this.length] = targer;
this.length ++;
return this.length;
}
push多个元素的情况
Array.prototype.push = function() {
for(var i = 0; i < arguments.length; i ++) {
this[this.length] = arguments[i];
}
return this.length;
}
总结:
数组push方法的原理是:
- 在原数组的第 length 位添加元素
- 原数组的 length ++
习题:
考点:push原理
var obj = {
"2":"a",
"3":"b",
"length":2,
"push":Array.prototype.push
}
obj.push('c');
obj.push('d');
最后 obj ---> 输出什么
思考push的基本原理:
- 在数组(类数组)的 length 位添加
- length ++
执行 obj.push('c') ---> 把 'c' 添加到数组的 length 位
数组的 length ---> 2
那么就是把元素 'c' 添加到 obj[2]
即 obj[2] = 'c';
length ++ ---> length:3
随即重复以上步骤添加元素‘d’
obj[3] = 'd';
length ++ ---> length:4
答案:
obj ---> {
"2":"c",
"3":"d",
"length":4,
"push":f push()
}