MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

概要

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

構文

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 メソッドは取り除かれた要素を返します。そうでなければ、このメソッドは取り除かれた要素を含む配列を返します。

index 2の位置(3番目の要素の前)に要素を一つ追加する

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');

// myFish は ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// removed は [], どの要素も取り除かれていない(空配列)

index 3の位置(4番目の要素)から一つ取り除く

var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);

// myFish は ["angel", "clown", "drum", "sturgeon"]
// removed は ["mandarin"]

index 2の位置(3番目の要素)から一つ取り除き、そこへ一つ挿入する

var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');

// myFish は ["angel", "clown", "trumpet", "sturgeon"]
// removed は ["drum"]

index 0の位置(先頭の要素)から二つ取り除き、そこへ三つ挿入する

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');

// myFish は ["parrot", "anemone", "blue", "trumpet", "sturgeon"] 
// removed は ["angel", "clown"]

配列長 - 3の位置(後ろから3番目)に二つ挿入する

var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);

// myFish は ["parrot", "anemone", "sturgeon"] 
// removed は ["blue", "trumpet"]

index -2の位置(後ろから2番目)から一つ取り除く

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);

// myFish は ["angel", "clown", "sturgeon"] 
// removed は ["mandarin"]

index 2の位置(3番目の要素)から末端までを取り除く

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);

// myFish は ["angel", "clown"] 
// removed は ["mandarin", "sturgeon"]

関連情報

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

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

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