在javascript中深拷贝嵌套对象的数组

17 浏览
0 Comments

在javascript中深拷贝嵌套对象的数组

我正在尝试在JavaScript中深拷贝嵌套对象的数组。我的数组看起来像这样:

var arr = [{name:"adam",age:"21"},
    {name:"freddie",age:"35",children:[{name:"mercury",age:"25"}]},
    {name:"jim",age:"35",children:[{name:"morrison",age:"25",children:[{name:"some", age:"40"}]}]}
    ];

我想要对数组中的每个对象进行深拷贝,即创建一个与`arr`完全相同但没有对象引用的新数组。数组的深度也是未知的,即子数组可以有任意多层。

我已经阅读了这个链接:Copying of an array of objects to another Array without object reference in javascript(Deep copy),但没有对我有帮助。我在谷歌上搜索并找到了一些jQuery的解决方案,但对我没有帮助,因为我不了解jQuery。

我还尝试使用递归来实现,但也没有成功:http://ideone.com/kJi5X3

我想在JavaScript中完成,不使用jQuery或其他任何东西。我对JavaScript还不熟悉,所以可能错过了是否有任何库或简单方法可以解决这个问题。

请帮助我解决这个问题。提前感谢您的帮助。

0