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

更新日:2024/06/14

初出:ECMAScript2023


Array.prototype.toSpliced()は、Arrayオブジェクト(Arrayコンストラクターのインスタンス)プロトタイプチェーンに組み込まれるメソッドです。
新規配列を生成して、指定された位置から指定された個数の配列要素を取り除き、指定された位置に指定された要素を挿入した結果をセットして返します。

具体的には、次の手順で処理されます。

  1. 新規配列を作成
  2. 元となる配列から、指定された位置まで新規配列にコピー
  3. 指定された要素を、新規配列にコピー
  4. 元となる配列から、指定された個数だけスキップして残りを新規配列にコピー
  5. 新規配列を返す

結果的に同じ配列を生成するArray.prototype.splice()は元となる配列を変更しましたが、このメソッドは元となる配列を変更しません。

 

■構文

Array.prototype.toSpliced ( start, skipCount, ...items )
  1. start: スキップ開始位置
    先頭から、startまでの直前(startは含まない)までコピーされる。

    負数のときは配列の後方から指定されたとみなす。
    具体的には、lengthプロパティ + start を使用する。

  2. skipCount: 省略可能。規定値はlengthプロパティ - start

    欠番インデックスを含めた、スキップする要素の個数を指定する。

  3. ...items: 省略可能。

    追加する要素の羅列を指定する。

生成された配列

Array.prototype.splice()は削除された要素をメンバに持つ新しい配列を返します。

 

■使用例

const array = [1,2,,4,5];
console.log( array.toSpliced(2,2,100,200,300) ); 
    // [ 1, 2, 100, 200, 300, 5 ]
console.log( array );
    // [ 1, 2, <1 empty item>, 4, 5 ]

 

■備考

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

const arrayLike = { 0:1 ,1:2 , 2:3, length:3 };
console.log( Array.prototype.toSpliced.call( arrayLike, 2,1,100,200 ) );
  // [ 1, 2, 100, 200 ]
console.log( arrayLike ); 
  // { '0': 1, '1': 2, '2': 3, length: 3 }

更新日:2024/06/14

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

スポンサーリンク

記事の内容について

null

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

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

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

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

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

 

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