(深入)使用jQuery复制数组[重复]
我需要复制对象的(有序的,而不是关联的)数组。我正在使用jQuery。我最初尝试
jquery.extend({}, myArray)
但是,自然地,这给了我一个需要数组的对象(顺便说一句,真的很喜欢jquery.extend)。
那么,复制数组的最佳方法是什么?
回答:
由于Array.slice()不进行深度复制,因此它不适用于多维数组:
var a =[[1], [2], [3]];var b = a.slice();
b.shift().shift();
// a is now [[], [2], [3]]
请注意,尽管我在shift().shift()
上面使用过,但要点只是 _b[0][0]
包含指向的指针a[0][0]
_而不是值。
同样delete(b[0][0])
也将导致 a[0][0]
删除,b[0][0]=99
并将值更改a[0][0]
为99。
当将true值作为初始参数传递时,jQuery的extend
方法 会 执行深层复制:
var a =[[1], [2], [3]];var b = $.extend(true, [], a);
b.shift().shift();
// a is still [[1], [2], [3]]
以上是 (深入)使用jQuery复制数组[重复] 的全部内容, 来源链接: utcz.com/qa/419074.html