push方法

push()方法的使用

push()方法在数组的尾部添加一个或多个元素,并返回数组新的长度,修改并替换了原始数组而非生成一个修改版的新数组。

基本用法

var totalArr=[1,2,3];
var pushArr=[4,5,6];
pushArr.push(7,8);
totalArr.push(pushArr);
console.log(pushArr)//[4,5,6,7,8]
console.log(totalArr)//[1,2,3[4,5,6,7,8]]

使用数组扩展将一个数组的元素依次添加到一个数组中

扩展运算符是三个点(…),将一个数组转为用逗号分隔的参数序列。数组扩展详细介绍

var totalArr=[1,2,3];
var pushArr=[4,5,6];
totalArr.push(...pushArr)
console.log(totalArr)//[1,2,3,4,5,6]

使用call()或apply()

call()和apply()的作用都是改变this的指向。

但是两者也有不同之处:
apply(newThisObj,[elem1,elem2,…]):最多只能有两个参数,newThisObj和一个数组。如果给该方法传递多个参数,则把参数都写进数组中,(即使只有一个参数,也要写进数组里)如果传入的数组不是一个有效的数组或arguments对象,那么将导致TypeError。如果没有提供数组和newThisObj中的任何一个参数,那么Global对象将被用作newThisObj,并且无法被传递任何参数。

call(newThisObj,elem1,elem2,…):它可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表。这个方法主要用在js对象各方法相互调用的时候,使当前this实例指针保持一致,或者在特殊情况下需要改变this指针。如果没有提供newThisObj参数,那么 Global 对象被用作newThisObj。

var totalArr=[1,2,3];
var pushArr=[4,5,6];
totalArr.push.apply(totalArr,pushArr)
console.log(totalArr)//[1,2,3,4,5,6]
totalArr.push.call(totalArr,pushArr)
console.log(totalArr)//[1,2,3,4,5,6,[4,5,6]]

在对象中使用push()

对象使用push方法要在对象中引入数组原型链的push方法,需要给对象的对象添加内容时,使用call改变this指向。

var obj={
    name:'樱花',
    age:18,
    hobby:{
        ball:'篮球',
        length:2
    },
    append:Array.prototype.push
}
obj.append('七星区')
obj.append.call(obj.hobby,'跑步')
obj.append.apply(obj.hobby,['看书'])

从下面图片可以看出,这里push进去的值默认为第一个,key是根据 length 属性的值来决定的,如果没有length属性则会自己创建一个length。
在对象中使用push()代码运行图

  • 19
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值