gpt4 book ai didi

javascript - (深度)使用 jQuery 复制数组

转载 作者:IT老高 更新时间:2023-10-28 13:14:12 24 4
gpt4 key购买 nike

Possible Duplicate:
What is the most efficient way to clone a JavaScript object?

我需要复制一个(有序的,非关联的)对象数组。我正在使用 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。

jQuery 的 extend 方法确实在将真值作为初始参数传递时执行深层复制:

var a =[[1], [2], [3]];
var b = $.extend(true, [], a);

b.shift().shift();
// a is still [[1], [2], [3]]

关于javascript - (深度)使用 jQuery 复制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com