Array.prototype.splice()
Il metodo splice()
modifica il contenuto di un array rimuovendo o sostituendo elementi esistenti e/o aggiungendo nuovi elementi in place.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
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 diarray.length - n
). Se il valore assoluto distart
è 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 diarray.length - start
(cioè, se è uguale o maggiore del numero di elementi rimasti nell'array, a partire dastart
), tutti gli elementi dastart
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 (ECMA-262) The definition of 'Array.prototype.splice' in that specification. |
Living Standard |
Compatibilità con i browser
BCD tables only load in the browser
Vedi anche
push()
/pop()
— aggiunge/rimuove elementi dalla fine dell'arrayunshift()
/shift()
(en-US) — aggiunge/rimuove elementi dall'inizio dell'arrayconcat()
— restituisce un nuovo array composto da questo array unito ad altri array e/o valore/i