Ceci est mon code:
var a=[1,2,3]
b=$.clone(a)
alert(b)
JQuery n'a-t-il pas de méthode 'clone'? Comment puis-je cloner un tableau en utilisant jQuery?
Utilisez simplement Array.prototype.slice
.
a = [1];
b = a.slice();
JSFiddle - http://jsfiddle.net/neoswf/ebuk5/
Qu'en est-il du jQuery.merge ?
copy = $.merge([], a);
Changement
b = $. clone (a) à b = $ (this) .clone (a) mais cela ne marche pas longtemps
mais est rapporté
http://www.fusioncube.net/index.php/jquery-clone-bug-in-internet-Explorer
Solution Vous utilisez une fonction de clonage incorporée simple de 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
Une excellente alternative est
// Shallow copy
var b = jQuery.extend({}, a);
// Deep copy
var b = jQuery.extend(true, {}, a);
-John Resig
Voir poste similaire
Voici comment je l'ai fait:
var newArray = JSON.parse(JSON.stringify(orgArray));
cela créera une nouvelle copie profonde non liée à la première (pas une copie superficielle).
de plus, cela ne clonera évidemment pas les événements et les fonctions, mais la bonne chose que vous puissiez faire en une seule ligne peut être utilisé pour n’importe quel roi d’objet (tableaux, chaînes, nombres, objets ...)
essayer
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;
}
}
utilisé comme
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]
Une autre option consiste à utiliser 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 S'il vous plaît utiliser propagation
let arrayCopy = [...myArray];