zjm*_*126 60 javascript arrays jquery clone
这是我的代码:
var a=[1,2,3]
b=$.clone(a)
alert(b)
Run Code Online (Sandbox Code Playgroud)
jQuery没有'克隆'方法吗?如何使用jQuery克隆数组?
med*_*iev 153
a = [1];
b = a.slice();
Run Code Online (Sandbox Code Playgroud)
JSFiddle - http://jsfiddle.net/neoswf/ebuk5/
这就是我做到的方式:
var newArray = JSON.parse(JSON.stringify(orgArray));
Run Code Online (Sandbox Code Playgroud)
这将创建一个与第一个无关的新深拷贝(不是浅拷贝).
这显然也不会克隆事件和函数,但你可以在一行中做到这一点,它可以用于任何对象之王(数组,字符串,数字,对象......)
更改
b = $ .clone(a)到b = $(this).clone(a)但是有些时候不行
但据报道
http://www.fusioncube.net/index.php/jquery-clone-bug-in-internet-explorer
解决方案 你使用简单的javascript内置克隆功能
var a=[1,2,3];
b=clone(a);
alert(b);
function clone(obj){
if(obj == null || typeof(obj) != 'object')
return obj;
var temp = obj.constructor();
for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
}
Run Code Online (Sandbox Code Playgroud)
-ConroyP
一个很好的选择是
// Shallow copy
var b = jQuery.extend({}, a);
// Deep copy
var b = jQuery.extend(true, {}, a);
Run Code Online (Sandbox Code Playgroud)
-John Resig
检查类似的帖子