ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 でアレイのクローンを作成するにはどうすればよいですか?
ES5 では、concat メソッドを使用して配列をコピーします。さらに、一部の開発者は、参照される配列のすべての要素をスライスし、引数として 0 を渡すことによって新しい配列を作成する、slice() メソッドを使用します。
###例###ユーザーは、ES5 で配列のクローンを作成する方法をすでにご覧になっています。
さらに、ユーザーは、代入演算子を使用して、文字列、数値、ブール値などの通常の変数と同じように配列をコピーすることを検討できます。
代入演算子を使用して配列をコピーするときに問題が発生する可能性があります。次の例を通してそれを理解してみましょう。
代入演算子を使用して配列をコピーする
上記の出力では、文字列値を strings2 配列にプッシュすると、strings 配列にもプッシュされることがわかります。なぜこのようなことが起こるのでしょうか?
可変オブジェクトと不変オブジェクト
JavaScript では、配列とオブジェクトは変更可能です。つまり、作成後に初期化した後で値を変更できます。したがって、上記の例では strings2 配列は存在しません。 strings 配列を strings2 配列に代入すると、strings 配列への参照が生成されます。したがって、strings2 配列を変更すると、string 配列も変更されます。
それでは、ES6 で配列のクローンを作成する方法を学びましょう。
ES6 でスプレッド演算子 (...) を使用して配列のクローンを作成する
展開演算子の構文は 3 つのドット (...) です。これを使用して、配列などの反復可能なオブジェクトを分散できます。スプレッド演算子は、配列またはオブジェクトの新しいコピーを作成します。
###文法###以下の例では、さまざまなブール値を含むブール配列を作成しました。その後、スプレッド演算子を使用してブール配列のコピーを作成し、そのコピーを booleanCopy 変数に割り当てます。
以下の例では、次元配列にさまざまな数値が含まれています。スプレッド演算子を使用して size 配列のコピーを作成し、代入演算子を使用してその配列を sizeClone 変数に保存しました。
上記の出力では、例 2 の参照配列のように、代わりに配列の実際のコピーを作成しているため、60 が
sizeClone 配列に反映されていますが、Sizes 配列には反映されていないことがわかります。
## これで、ユーザーは ES6 で代入演算子が使用されない理由と、配列のクローン作成に以上がES6 でアレイのクローンを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。