概要
古い要素を取り除きつつ新しい要素を追加することで、配列の内容を変更します。
構文
array.splice(index, howMany, [element1][, ..., elementN]); array.splice(index, [howMany, [element1][, ..., elementN]]); // SpiderMonkey/Firefox 拡張、この場合 howMany=array.length-index となります
引数
index
- 配列を変化させ始める要素の添え字。値が配列の長さより大きい場合、配列の長さと同じ値となります。値が負数の場合、配列の終端からその値を引いた数が開始位置となります。
howMany
- 配列から取り除く古い要素の数を示す整数。
howMany
が 0 の場合、どの要素も取り除かれません。この場合、少なくとも 1 つの新しい要素を指定する必要があります。もしhowMany
引数が何も指定されなかったら (上の 2 つ目の構文。SpiderMonkey 拡張)、index
以降の全ての要素が取り除かれます。 element1, ..., elementN
- 配列に追加する要素。要素を指定しなかった場合、
splice
は単に配列から要素を取り除きます。
戻り値
取り除かれた要素を含む配列。要素がひとつのみ削除された場合は、要素数 1 の配列が返されます。
説明
もし取り除こうとする要素数と異なる数の要素を挿入するよう指定すると、関数呼び出しが終わったとき配列は初めと異なる長さになります。
splice
メソッドは取り除かれた要素を含む配列を返します。要素を 1 つだけ取り除いた場合、1 要素だけの配列を返します。
後方互換性
JavaScript 1.2
要素を 1 つだけ取り除いた (howMany
パラメータを 1 とした) 場合、splice
メソッドは取り除かれた要素を返します。そうでなければ、このメソッドは取り除かれた要素を含む配列を返します。
例
例: splice
を使う
以下のスクリプトは splice の使い方を例示しています。
// print 関数が定義されているとして var myFish = ["angel", "clown", "mandarin", "surgeon"]; print("myFish: " + myFish); var removed = myFish.splice(2, 0, "drum"); print("1 つ追加した後: " + myFish); print("取り除いたのは: " + removed); removed = myFish.splice(3, 1); print("1 つ取り除いた後: " + myFish); print("取り除いたのは: " + removed); removed = myFish.splice(2, 1, "trumpet"); print("1 つ置き換えた後: " + myFish); print("取り除いたのは: " + removed); removed = myFish.splice(0, 2, "parrot", "anemone", "blue"); print("2 つ置き換えた後: " + myFish); print("取り除いたのは: " + removed);
このスクリプトは以下のように表示されます。
myFish: angel,clown,mandarin,surgeon 1 つ追加した後: angel,clown,drum,mandarin,surgeon 取り除いたのは: 1 つ取り除いた後: angel,clown,drum,surgeon 取り除いたのは: mandarin 1 つ置き換えた後: angel,clown,trumpet,surgeon 取り除いたのは: drum 2 つ置き換えた後: parrot,anemone,blue,trumpet,surgeon 取り除いたのは: angel,clown