.splice()

splice()メソッドは古い要素の削除しながら、新しい要素を追加することで、配列の内容を変更します。

文法

array.splice(index , howMany[, element1[, ...[, elementN]]])
引数 説明
index 配列の変更を開始するインデックスを指定します。 もし配列のlengthの値より大きい場合、実際の開始インデックスは配列のlengthが設定されます。 負の値の場合、終端から数えたインデックスで開始します。
howMany 削除する古い配列要素の数を指定します。 もしhowManyが0であれば、要素は削除されません。 この場合、新しい要素を少なくとも1つ指定する必要があります。 もし、howManyがindexの開始位置以降の要素の数より大きい場合、 配列の最後までの要素を全て削除します。
element1, ..., elementN 追加する配列を指定します。 ここに要素を指定しなければ、spliceは単に配列から要素を削除するのみになります。
戻り値
  削除された配列が含まれる配列が返ります。 もし1つだけ要素を削除すると、1つの要素を含む配列が返されます。 もし何も配列を削除しなければ、空の配列が返されます。

説明

削除する数とは異なる数の要素を挿入する場合、 その配列は結果的に異なるlengthを持つことになります。

spliceの使用例

下記のスクリプトは、spliceの使用方法を示しています。

var myFish = ["angel", "clown", "mandarin", "surgeon"];

//インデックス2番目から、0個の要素を削除し、"drum"を挿入
var removed = myFish.splice(2, 0, "drum");
//myFish  : ["angel", "clown", "drum", "mandarin", "surgeon"]
//removed : []

//インデックス3番目から、1つの要素を削除
removed = myFish.splice(3, 1);
//myFish  : ["angel", "clown", "drum", "surgeon"]
//removed : ["mandarin"]

//インデックス2番目から、1つの要素を削除し、"trumpet"を挿入
removed = myFish.splice(2, 1, "trumpet");
//myFish  : ["angel", "clown", "trumpet", "surgeon"]
//removed : ["drum"]

//インデックス0番目から、2つの要素を削除し、"parrot","anemone","blue"を挿入
removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
//myFish  : ["parrot", "anemone", "blue", "trumpet", "surgeon"]
//removed : ["angel", "clown"]

//インデックス3番目から、2つの要素を削除
removed = myFish.splice(3, Number.MAX_VALUE);
//myFish  : ["parrot", "anemone", "blue"]
//removed : ["trumpet", "surgeon"]

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本 1.0 1.0 (1.7 or earlier) 5.5
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

関連項目

  • push / pop - 配列の末尾から、要素の追加/削除を行います。
  • unshift / shift - 配列の先頭から、要素の追加/削除を行います。
  • concat - 現在の配列に別の配列と(または)値を連結することで構成される新しい配列を返します。

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。