map方法会不会改变原数组?

一直以来我认为 map() 方法是不会改变原数组的,面试的时候经常被问到~

先看下面这段代码

基本数据类型:

 复杂数据类型:

 user 将对象中的数据赋值给 user2,实际上是将这个内存对象的引用地址复制给了 user2,。它们共同指向同一块内存对象(内存地址),所以复杂数据中修改的是内存对象中的值,就会影响所有指向这块内存的地址引用的数据值

再看这段代码

item 被赋值为 item*3,但打印的结果显示 arr 并没有被改变。接下来试着把数组改为对象数组

这时候,可以看到,原始数组的 arr 被改变了。

所以,说 map 不会改变原数组 并不严谨。

在一定的情况下,基本数据类型不会,复杂数据类型会。不改变的话需要声明一个新的变量来存储map的结果

上面的代码,都有一个共同的特点:直接修改了每个 item 的属性(如果 item 是一个对象),这是导致改变原数组的根本原因,实际开发时,不建议这么做!

正确的做法是声明一个新的变量来存储 map 的结果,而不是去修改原始数组

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值