push()——深入理解

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方法的原理是:

  1. 在原数组的第 length 位添加元素
  2. 原数组的 length ++

习题:
考点:push原理

var obj = {
	"2":"a",
	"3":"b",
	"length":2,
	"push":Array.prototype.push
}
obj.push('c');
obj.push('d');
最后  obj   --->   输出什么

思考push的基本原理:

  1. 在数组(类数组)的 length 位添加
  2. 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()
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值