(深入)使用jQuery复制数组(复制)

2018-03-08

Communitymorgancodes提出了一个问题:(Deep) copying an array using jQuery [duplicate],或许与您遇到的问题类似。

回答者Noah Sussman给出了该问题的处理方式:

Since Array.slice() does not do deep copying, it is not suitable for multidimensional arrays:

var a =[[1], [2], [3]];
var b = a.slice();

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

Note that although I've used shift().shift()above, the point is just that b[0][0]contains a pointer to a[0][0]rather than a value.

Likewise delete(b[0][0])also causes a[0][0]to be deleted and b[0][0]=99also changes the value of a[0][0]to 99.

jQuery's extendmethod doesperform a deep copy when a true value is passed as the initial argument:

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

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

希望本文对你有帮助,欢迎支持JavaScript中文网

原文链接:stackoverflow.com

上一篇:遍历对象CoffeeScript
下一篇:正则表达式查找字符串包含两个字符之间的分隔符而排除
相关教程
关注微信

扫码加入 JavaScript 社区

相关文章

首次访问,需要验证
微信扫码,关注即可
(仅需验证一次)

欢迎加入 JavaScript 社区

号内回复关键字:

回到顶部