これは私のコードです:
var a=[1,2,3]
b=$.clone(a)
alert(b)
JQueryには「クローン」メソッドがありませんか? jQueryを使用して配列を複製するにはどうすればよいですか?
jQuery.merge はどうですか?
copy = $.merge([], a);
これは私がそれをやった方法です:
var newArray = JSON.parse(JSON.stringify(orgArray));
これにより、最初のコピーとは関係のない(浅いコピーではない)新しいディープコピーが作成されます。
また、これは明らかにイベントと関数を複製しませんが、1行でそれを行うことができ、オブジェクトの王様(配列、文字列、数字、オブジェクト...)に使用できる良いことです
変更
b = $。clone(a)tob = $(this).clone(a)しかし、それはしばらく動作しない
しかし、報告されています
http://www.fusioncube.net/index.php/jquery-clone-bug-in-internet-Explorer
SolutionJavaScriptのシンプルな組み込みクローン機能を使用します
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
優れた代替手段は
// Shallow copy
var b = jQuery.extend({}, a);
// Deep copy
var b = jQuery.extend(true, {}, a);
-ジョン・レジグ
同様の投稿をチェック
試してみる
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;
}
}
使用
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]
別のオプションは、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スプレッドを使用してください
let arrayCopy = [...myArray];