forEach究竟能不能改变数组的值

1.不改变原数组

    let obj = {'1':1}
    let oldArr = ['1',1,obj,true]
    oldArr.forEach((el)=>{
      el = 1
    })
    console.log(oldArr)
[
    "1",
    1,
    {
        "1": 1
    },
    true
]

2.改变原数组

    let obj = {'1':1}
    let oldArr = ['1',1,obj,true]
    oldArr.forEach((el)=>{
      if(typeof el == 'object'){
        el['2']=2
      }
      el = 2
    })
    console.log(oldArr)
[
    "1",
    1,
    {
        "1": 1,
        "2": 2
    },
    true
]

3.结论:forEach方法不能改变数组里的基本变量

    let a = 1
    let obj = {'1':1}
    let oldArr = ['1',1,obj,true,a]
    oldArr.forEach((el,index)=>{
      // if(typeof el == 'object'){
      //   el['2']=2
      // }
      oldArr[index] =2
    })
    console.log(oldArr)

forEach方法里操作对象生效,想要操作里面的基本数据类型,就用arr[i]的形式直接操作数组。

转载于 https://blog.csdn.net/ZhengKehang/article/details/81281563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值