Array.prototype.push()
方法用于向当前数组的末尾添加一个或多个元素,并返回新的数组长度。
语法:
arr.push( item1 [, items...] )
类型声明:
interface Array<T> {push(...items: T[]): number;}
参数说明:
参数 | 说明 | 类型 |
---|---|---|
item1 | 添加元素 | any |
itemN | 添加的其他元素 | any |
如果添加的元素类型为数组类型,仍然会被当作一个元素看待,只是这个元素是数组类型而已。如果要合并两个数组,请使用 concat()
函数。
返回值:
返回添加元素后的数组长度。
当向数组中添加新的元素时,数组的 length
属性也会随之改变。一般而言,数组的 length
属性将会加 N
( N
为添加的元素个数)。
push()
方法有意具有通用性。该方法和 call()
或 apply()
一起使用时,可应用在类似数组的对象上。push()
方法根据 length 属性来决定从哪里开始插入给定的值。如果 length
不能被转成一个数值,则插入的元素索引为 0,包括 length
不存在时。当 length
不存在时,将会创建它。
const foo = ['a', 'b'];const bar = foo.push('c', 'd');console.log(foo);// ['a', 'b', 'c', 'd']console.log(bar);// 4
该示例使用 apply()
添加第二个数组的所有元素。注意当第二个数组太大时不要使用这个方法来合并数组,因为事实上一个函数能够接受的参数个数是有限制的。
const foo = ['a', 'b'];const bar = ['c', 'd'];// 将二个数组融合进第一个数组// 相当于 foo.push('c', 'd');Array.prototype.push.apply(foo, bar);console.log(foo);// ['a', 'b', 'c', 'd']