一直以来我认为 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小时内删除。
留言与评论(共有 0 条评论) |