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

阅读: 评论:0

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

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

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

先看下面这段代码

基本数据类型:

 复杂数据类型:

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

再看这段代码

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

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

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

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

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

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

本文发布于:2024-02-02 21:31:45,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170688070546571.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:会不会   数组   方法   map
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23