【JavaScript】ArrayクラスのcopyWithin()メソッドについて

JavaScriptのcopyWithin()メソッドは、配列内の要素を指定された位置にコピーするための便利なメソッドです。このメソッドを使うことで、配列内の要素を移動させたり、特定の範囲の要素をコピーしたりすることができます。本記事では、copyWithin()メソッドの基本的な使い方から応用例まで詳しく解説します。

目次

基本構文

copyWithin()メソッドの基本構文は以下の通りです:

array.copyWithin(target, start, end);
  • target: コピー先の開始位置を示すインデックス。
  • start (オプション): コピー元の開始位置を示すインデックス。デフォルトは0です。
  • end (オプション): コピー元の終了位置を示すインデックス。デフォルトは配列の末尾です。

このメソッドは元の配列を変更し、新しい配列は返しません。

基本的な使い方

配列内の要素をコピー

const array = [1, 2, 3, 4, 5];
array.copyWithin(0, 3);

console.log(array); // 出力: [4, 5, 3, 4, 5]

この例では、配列の末尾から3つの要素が先頭にコピーされます。

範囲を指定してコピー

const array = [1, 2, 3, 4, 5];
array.copyWithin(1, 3, 4);

console.log(array); // 出力: [1, 4, 3, 4, 5]

この例では、インデックス1からインデックス3(終了位置は含まない)までの要素が、インデックス1から始まる位置にコピーされます。

負のインデックスを使用する

const array = [1, 2, 3, 4, 5];
array.copyWithin(-2);

console.log(array); // 出力: [1, 2, 3, 1, 2]

この例では、末尾から2つの要素が末尾から2番目の位置にコピーされます。

ネガティブなインデックスの取り扱い

copyWithin()メソッドは、ネガティブなインデックスも適切に処理します。

const array = [1, 2, 3, 4, 5];
array.copyWithin(-2, -3, -1);

console.log(array); // 出力: [1, 2, 3, 3, 4]

この例では、末尾から3番目の要素から末尾から1番目の要素(終了位置は含まない)までが、末尾から2番目の位置にコピーされます。

注意点

  • copyWithin()メソッドは、元の配列を変更するため、注意して使用してください。
  • コピー元とコピー先が重なっている場合、コピー元の要素はその場で上書きされます。
  • copyWithin()メソッドは、新しい配列を作成せず、元の配列を変更します。

まとめ

copyWithin()メソッドは、配列内の要素を指定された位置にコピーする便利なメソッドです。範囲を指定することで、特定の部分だけをコピーすることも可能です。しかし、元の配列を変更するため、注意が必要です。この記事を参考にして、copyWithin()メソッドを効果的に活用してください。

目次