--- title: Array.prototype.splice() slug: Web/JavaScript/Reference/Global_Objects/Array/splice tags: - Array - JavaScript - Method - Prototype - Reference - remove - replace - splice - プロトタイプ - メソッド translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice ---
splice()
メソッドは、in place で既存の要素を取り除いたり、置き換えたり、新しい要素を追加したりすることで、配列の内容を変更します。
let arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start
start
は配列の長さに設定されます。この場合、削除される要素はありませんが、このメソッドは追加関数として動作し、提供された item[n*] の数だけ要素を追加します。-1
が原点で、-n
は最後の要素から n
番目であることを意味し、したがってインデックスが array.length - n
であるのと同等です)。start
の絶対値が配列の長さよりも大きい場合は、インデックス 0
から始まります。deleteCount
{{optional_inline}}start
から取り除く古い要素の数を示す整数です。deleteCount
引数が省略された場合、または array.length - start
以上 (つまり、start
から始まり、配列に残る要素の数以上の場合) の場合、start
以降のすべての要素が取り除かれます。メモ: IE8 では、deleteCount
が省略された場合はすべての要素を削除しません。
deleteCount
が 0
か負数の場合、どの要素も取り除かれません。この場合、少なくとも 1 つの新しい要素を指定する必要があります (以下参照)。item1, item2, ...
{{optional_inline}}start
から始まります。要素を指定しなかった場合、splice()
は単に配列から要素を取り除きます。取り除かれた要素を含む配列です。
要素が 1 つのみ削除された場合は、要素数 1 の配列が返されます。
要素が削除されなかった場合、空の配列が返されます。
取り除こうとする要素数と異なる数の要素を挿入するように指定した場合、関数呼び出しが終わったとき配列は初めと異なる長さになります。
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'] let removed = myFish.splice(2, 0, 'drum') // myFish は ["angel", "clown", "drum", "mandarin", "sturgeon"] // removed は [], どの要素も取り除かれていない (空配列)
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'] let removed = myFish.splice(2, 0, 'drum', 'guitar') // myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"] // removed is [], no elements removed
let myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'] let removed = myFish.splice(3, 1) // removed は ["mandarin"] // myFish は ["angel", "clown", "drum", "sturgeon"]
let myFish = ['angel', 'clown', 'drum', 'sturgeon'] let removed = myFish.splice(2, 1, 'trumpet') // myFish は ["angel", "clown", "trumpet", "sturgeon"] // removed は ["drum"]
let myFish = ['angel', 'clown', 'trumpet', 'sturgeon'] let removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue') // myFish は ["parrot", "anemone", "blue", "trumpet", "sturgeon"] // removed は ["angel", "clown"]
let myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'] let removed = myFish.splice(-3, 2) // myFish は ["parrot", "anemone", "sturgeon"] // removed は ["blue", "trumpet"]
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'] let removed = myFish.splice(-2, 1) // myFish は ["angel", "clown", "sturgeon"] // removed は ["mandarin"]
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'] let removed = myFish.splice(2) // myFish は ["angel", "clown"] // removed は ["mandarin", "sturgeon"]
仕様書 |
---|
{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}} |
{{Compat("javascript.builtins.Array.splice")}}