[{a:2,b:3},{a:2,b:4},{a:5,b:3}].map(i=>i)
这个返回值是否完成了深克隆操作
数组的map方法 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
如果一定要说克隆的话 应该是浅克隆
按照你上面的例子
let arr = [{a:2,b:3, obj: {f: 9}},{a:2,b:4},{a:5,b:3}]
let mapData = arr.map(i => i)
mapData[0].obj.f = 10
console.log(arr[0].obj.f) // 10
10 回答10.3k 阅读
4 回答8.6k 阅读✓ 已解决
7 回答10.7k 阅读
2 回答11.3k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答4.2k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
不是。因为数组 a 的元素是引用类型,

map
方法里只是直接返回了每个元素,还是同一个引用地址。见下图:如果数组 a1 里的元素都是基本类型,这么操作,确实可以实现 深克隆 的效果。
