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

Compatibilità con i browser

BCD tables only load in the browser

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