已经两个多月没写了,真是太懒了!
说起js数组的拷贝,无非是浅拷贝和深拷贝。以前对这两个概念一直很模糊,最近好像懂了一点点。
数组拷贝
浅拷贝
浅拷贝就相当于拷贝了该数组的地址,新的数组和旧数组共用一个内存,无论是修改新的数组还是旧的数组,都会影响另一个数组。最简单的浅拷贝就是直接赋值。
1 | var a = ["one","two","three"]; |
深拷贝
有时我们想修改一个拷贝数组,但又不想改动原数组,就需要使用深拷贝。深拷贝是新开辟一块内存来存放新数组。新数组或旧数组的改动都不会影响对方。下面讲几个常见的简单的数组深拷贝方法。