Das ist mein Code:
var a=[1,2,3]
b=$.clone(a)
alert(b)
Verfügt jQuery nicht über eine "Klon" -Methode? Wie kann ich ein Array mit jQuery klonen?
Verwenden Sie einfach Array.prototype.slice
.
a = [1];
b = a.slice();
JSFiddle - http://jsfiddle.net/neoswf/ebuk5/
Was ist mit der jQuery.merge ?
copy = $.merge([], a);
Veränderung
b = $. clone (a) bis b = $ (this) .clone (a), aber es funktioniert einige Zeit nicht
wird aber berichtet
http://www.fusioncube.net/index.php/jquery-clone-bug-in-internet-Explorer
Solution Sie verwenden eine einfache eingebaute Klonfunktion von 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;
}
-ConroyP
Eine gute Alternative ist
// Shallow copy
var b = jQuery.extend({}, a);
// Deep copy
var b = jQuery.extend(true, {}, a);
-John Resig
Ähnliche Post überprüfen
So habe ich es gemacht:
var newArray = JSON.parse(JSON.stringify(orgArray));
dadurch wird eine neue tiefe Kopie erstellt, die sich nicht auf die erste bezieht (keine flache Kopie).
natürlich werden auch keine Ereignisse und Funktionen geklont, aber das Gute, Sie können es in einer Zeile machen, und es kann für jeden König von Objekten (Arrays, Strings, Zahlen, Objekte ...) verwendet werden.
versuchen
if (!Array.prototype.clone) {
Array.prototype.clone = function () {
var arr1 = new Array();
for (var property in this) {
arr1[property] = typeof (this[property]) == 'object' ? this[property].clone() : this[property]
}
return arr1;
}
}
benutzen als
var a = [1, 2, 3]
b = a;
a.Push(4)
alert(b); // alerts [1,2,3,4]
//---------------///
var a = [1, 2, 3]
b = a.clone();
a.Push(4)
alert(b); // alerts [1,2,3]
Eine weitere Option ist die Verwendung von Array.concat:
var a=[1,2,3]
var b=[].concat(a);
var a=[1,2,3]
b=JSON.parse(JSON.stringify(a));
document.getElementById("demo").innerHTML = b;
<p id="demo"></p>
ES6 Bitte Spread verwenden
let arrayCopy = [...myArray];