push()方法将一个或多个元素添加到数组的末尾,并返回新数组的长度。
此方法会改变数组自身。
添加元素到数组
var sports = ["soccer", "baseball"]; var total = sports.push("football", "swimming"); console.log(sports); // ["soccer", "baseball", "football", "swimming"] console.log(total); // 4
合并两个数组
使用apply可以将array参数变成arguments。
var vegetables = ['parsnip', 'potato']; var moreVegs = ['celery', 'beetroot']; // 将第二个数组融合进第一个数组 // 相当于 vegetables.push('celery', 'beetroot'); Array.prototype.push.apply(vegetables, moreVegs); console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
在对象上使用
var obj = { length: 0, addElem: function addElem (elem) { // obj.length is automatically incremented // every time an element is added. [].push.call(this, elem); } }; // Let's add some empty objects just to illustrate. obj.addElem({}); obj.addElem({}); console.log(obj.length); // → 2
这样操作的结果会发现obj变成了这样:
{ 0: {}, 1: {}, addElem: addElem(elem), length: 2 }
并且它的length也增长了。
自己实现简单的push():
Array.prototype.push=function () {
for (var i=0;i<arguments.length;i++){
this[this.length]=arguments[i]
}
return this.length;
};