したがって、既存のオブジェクトと同じ内容のオブジェクトを作成する場合、単純な代入操作では作成できません。これはまだ不明瞭かもしれません。
以下の例を見てください:
var a=[1,2,3,4]; var b=a;c=b; //最後の要素を削除します。 3 alter(c ); //ポップ 1,2,3
var a=[1,2,3,4]; //最後のものを削除element alter( b); // ポップアップ 1,2,3 アラート(c) // ポップアップ 1,2,3
上記のコードを実行したところ、次のことがわかりました。 a が変更されると、変数 b と c の結果も変更されます。
上記の状況は、私たちが必要とするものではないかもしれません。私たちが望んでいるのは、元のオブジェクトと同じ内容を持つ「新しい」オブジェクトを作成することです。このように、いくつかのクローン作成方法を通じてそれを実現する必要があります。
配列もJSのオブジェクトの一種です。ここでは主に Array の clone メソッドをまとめます。 ここでは Array ネイティブ オブジェクトの clone メソッドを拡張します。
1. 最も簡単な方法は、新しい配列を作成し、その配列を走査し、新しい配列に項目を 1 つずつ追加することです。
Array.prototype.clone=function() { var a =[]; for(var i=0,l=this.length;iArray.prototype.clone=function (){ var a=[]; for(var i=0,l=this.length;i
このような実装方法が最も考えやすく理解しやすいですが、コードは少し複雑です。Array のメソッドをいくつかよく調べてみましょう。実は非常に簡単なメソッドがあります。他の 2 つの方法について説明しましょう。
2. Array オブジェクトのスライスメソッドを使用します。
slice メソッドは、渡されたパラメータ start と end の値を介して配列のセグメントを返します。このメソッドは元の配列に対しては動作しません。すべての項目を返すようにするには、slice(0) を使用します。
Array.prototype.clone=function() { return this .slice(0); }
Array.prototype.clone=function(){ return this.slice(0); }
3. Array の concat メソッドを使用します。物体。
concat メソッドは配列を結合するために使用されます。空の関数とマージすることで、クローン作成機能を実現できます。
Array.prototype.clone=function() { return [ ].concat(this); } //または Array.prototype.clone=function(){ return this.concat(); }
Array.prototype.clone=function(){ return [].concat (this) ; } //または Array.prototype.clone=function(){ return this.concat(); }
想像力を働かせれば、上記のような方法があるはずです。私が考えた2つの方法だけです。
JavaScript で配列のクローンを作成する最も簡単な方法
JavaScript 配列の高速クローン (slice() 関数) と配列の並べ替え、シャッフル、検索 (ソート () 関数)