Array.prototype.splice()

概要

古い要素を取り除きつつ新しい要素を追加することで、配列の内容を変更します。

構文

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

関連情報

  • push / pop - 配列末尾の要素の追加 / 削除
  • shift / unshift - 配列先頭の要素の追加 / 削除
  • concat - 配列に他の配列や値をつないでできた新しい配列を返す

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: teoli, tatsuyaoiw, ethertank, Mgjbot, Yuichirou, Shoot
 最終更新者: teoli,