Array.prototype.splice()

Il metodo splice() modifica il contenuto di un array rimuovendo o sostituendo elementi esistenti e/o aggiungendo nuovi elementi in place.

Sintassi

var arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

Parametri

start
L'indice al quale iniziare a cambiare l'array. Se maggiore della lunghezza dell'array, start sarà impostato sulla lunghezza dell'array. Se negativo, inizierà molti elementi dalla fine dell'array (con origine -1, che significa -n è l'indice dell'ultimo elemento dell'ennesima ed è quindi equivalente all'indice di array.length - n). Se il valore assoluto di  start è maggiore della lunghezza dell'array, inizierà dall'indice 0.
deleteCount Optional
Un numero intero che indica il numero di elementi nell'array da rimuovere da start.
Se deleteCount viene omesso, o se il suo valore è uguale o maggiore di array.length - start (cioè, se è uguale o maggiore del numero di elementi rimasti nell'array, a partire da start), tutti gli elementi da start alla fine dell'array verranno eliminati.
Se deleteCount è 0 o negativo, non vengono rimossi elementi. In questo caso, devi specificare almeno un nuovo elemento (vedi sotto).
item1, item2, ... Optional
Gli elementi da aggiungere all'array, a partire da start. Se non viene specificato alcun elemento, splice() rimuoverà solo gli elementi dall'array.

Valore di ritorno

Un array contenente gli elementi eliminati. Se viene rimosso solo un elemento, viene restituito un array di un elemento. Se non vengono rimossi elementi, viene restituito un array vuoto.

Descrizione

Se il numero specificato di elementi da inserire differisce dal numero di elementi da rimuovere, la lunghezza dell'array sarà diversa alla fine della chiamata.

Esempi

Rimuovi 0 (zero) elementi dall'indice 2 e inserisci "drum"

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

// myFish è ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// removed è [], nessun elemento rimosso

Rimuovi 0 (zero) elementi dall'indice 2 e inserisci "drum" e "guitar"

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

// myFish è ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"] 
// removed è [], nessun elemento rimosso

Rimuovi 1 elemento dall'indice 3

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

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

Rimuovi 1 elemento dall'indice 2 e inserisci "trumpet"

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

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

Rimuovere 2 elementi dall'indice 0 e inserire "parrot", "anemone" e "blue"

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

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

Rimuovere 2 elementi dall'indice 2

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

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

Rimuovere 1 elemento dall'indice -2

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

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

Rimuovere tutti gli elementi dopo l'indice 2 (incl.)

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

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

Specifiche

Specifica Stato Commento
ECMAScript 3rd Edition (ECMA-262) Standard Definizione iniziale Implementato in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Draft

Compatibilità con i browser

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
spliceChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Vedi anche

  • push() / pop() — aggiunge/rimuove elementi dalla fine dell'array
  • unshift() / shift() — aggiunge/rimuove elementi dall'inizio dell'array
  • concat() — restituisce un nuovo array composto da questo array unito ad altri array e/o valore/i