【JSリファレンス】Array.prototype.copyWithin()

更新日:2024/06/14

Array.prototype.copyWithin()は、Arrayオブジェクト(Arrayコンストラクターのインスタンス)のプロトタイプチェーンに組み込まれるメソッドです。
配列内の要素を、配列内の他の位置にコピーします。

このメソッドは、元となる配列の内容を変更します。
コピーによる配列サイズの増減はありません。

 

■構文

Array.prototype.copyWithin ( target, start [ , end ] )
  1. target: コピー先インデックス

    lengthプロパティ以上のとき、コピーされない

  2. start: コピー元開始インデックス

    lengthプロパティ以上のとき、コピーされない

  3. end: 省略可。規定値は lengthプロパティ

    コピー元終了位置+1 となるインデックス
    lengthプロパティより大きいとき、lengthプロパティの値を使用する

各引数は、負数で指定された場合は、配列の後ろからの位置とみなします。
具体的には、lengthプロパティ に各引数値を加算した位置をインデックスとして使用します。

加算後の値がマイナスの場合は、インデックス 0 とみなします。

start >= end のとき、コピーされません。

元となった配列

 

■使用例

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

 

■備考

call()等でアレイライクオブジェクトを対象にすることも可能です。

const arrayLike = {0:1,1:2,2:3,3:4,4:5,length:5};
const array = Array.prototype.copyWithin.call( arrayLike , 0 , 2 , 4 );
console.log( array ); // { '0': 3, '1': 4, '2': 3, '3': 4, '4': 5, length: 5 }
console.log( arrayLike );  // { '0': 3, '1': 4, '2': 3, '3': 4, '4': 5, length: 5 }

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。