js 中map方法返回值与被迭代数组之间的关系解析

很多时候我们会用这个方法去迭代一个简单的数组,处理后得到返回的结果,但是这个返回结果但是被迭代对象也被修改了,这往往使我们不想看到的,究竟怎么回事呢,不多说直接上代码
1 简单数组

js 中map方法返回值与被迭代数组之间的关系解析_第1张图片
对比结果发现原迭代对象没有被修改

2 数组中放对象


js 中map方法返回值与被迭代数组之间的关系解析_第2张图片
结果被迭代对象也被改了

3对象和值并存


js 中map方法返回值与被迭代数组之间的关系解析_第3张图片
结果被迭代对象没有被修改

4手动修改


js 中map方法返回值与被迭代数组之间的关系解析_第4张图片
结果被迭代对象修改了

结论:map方法的迭代只是做一次浅拷贝,并返回一个新数组,这里深浅拷贝就不做解释了,有兴趣的自己可以了解一下。

你可能感兴趣的:(js 中map方法返回值与被迭代数组之间的关系解析)