js数组、对象的深浅拷贝,真的是一个很复杂的问题。
如果是对象数组的话,处理起来又会更麻烦。
在遇到数据处理的时候,如果没注意到 深浅拷贝的问题,真的容易被带到沟里,怎么也找不到问题的所在。
而我今天,就遇到了这样的问题。每次操作,原数组都跟这变,让人很恼火。遂认定是深浅拷贝导致的问题。
我今天遇到的问题是,数组是对象数组,即类似下面这样的数组:
let a=[{a:1},{a:2}]
当我用 cancat() 和slice() 对数组进行深拷贝的时候,发现深拷贝根本没成功。实际上问题在于,数组里面的对象,没有被深拷贝出来。 也就是对这种复合型的数组的操作,需要更复杂的处理方式。
我最后是用jquery的深拷贝方法来解决的
$.extend(true,obj1,obj2)