如何在Javascript中克隆对象数组?.每个对象也有对同一数组中其他对象的引用?当我第一次提出这个问题的时候,我只是想到var clonedNodesArray = nodesArray.clone()将存在并搜索有关如何在javascript中克隆对象的信息。我确实找到了问题关于StackOverflow(由相同的@JohnResig回答),他指出使用jQuery可以做到var clonedNodesArray = jQuery.extend({}, nodesArray);克隆物体。不过,我尝试过这样做,它只复制数组中对象的引用。所以如果我nodesArray[0].value = "red"clonedNodesArray[0].value = "green"nodesArray[0]和clonedNodesArray[0]的值将变成“绿色”。然后我试着var clonedNodesArray = jQuery.extend(true, {}, nodesArray);深层次复制一个物体,但我得到了“太多递归“和”控制堆栈溢出“分别来自Firebug和Opera蜻蜓的消息。你会怎么做?这难道是不该做的事吗?在Javascript中有可重用的方法吗?
3 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
在第一轮中,克隆不引用数组中其他对象的所有对象。跟踪每个物体的起源。 在第二轮中,将物体连接在一起。
Smart猫小萌
TA贡献1911条经验 获得超7个赞
Number.POSITIVE_INFINITY
var clonedArray = JSON.parse(JSON.stringify(nodesArray))
slice
添加回答
举报
0/150
提交
取消