Array.prototype.splice()

El m猫tode splice() modifica el contingut d'un array eliminant elements ja existents i/o afegint-ne de nous.

Sintaxi

array.splice(inici, comptadorEliminar[, item1[, item2[, ...]]])

Par脿metres

inici
La posici贸 a partir de la qual es comen莽ar脿 a modificar l'array (considerant 0 com a primera posici贸). Si s'especifca un nombre major que la longitud de l'array, la posici贸 d'inici real esdevindr脿 la longitud de l'array. Si s'especifica un nombre negatiu, la posici贸 d'inici ser脿 el valor absolut del nombre especificat contant des del final de l'array.
comptadorEliminar
Un nombre sencer que indica el nombre d'elements que s'eliminaran. Si comptadorEliminar 茅s 0 no s'eliminar脿 cap element. En aquest cas s'hauria d'especificar al menys un nou element. Si comptadorEliminar 茅s major que el nombre d'elements de l'array des de la posici贸 inici fins el final de l'array tots els elements des d'inici fins al final de l'array seran eliminats.
Si s'omet comptadorEliminar aquest rebr脿 un valor per defecte igual a (arr.length - inici).
item1, item2, ...
Els elements que s'afegiran a l'array, comen莽ant a la posici贸 inici. Si no s'especifcia cap element, splice() nom茅s eliminar脿 elements de l'array.

Valor retornat

Un array que cont茅 els elements eliminats. Si nom茅s s'ha eliminat un element es retornar脿 un array amb un sol element. Si no s'ha eliminat cap element retornar脿 un array buit.

Descripci贸

Si s'especifica un nombre diferent d'elements a eliminar del nombre d'elements a inserir la longitud de l'array canviar脿 al final de la crida.

Exemples

Utilitzar splice()

L'script seguent ilustra l'煤s de splice():

var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

// eliminem 0 elements a partir de la posici贸 2, i inserim 'drum'
var eliminats = myFish.splice(2, 0, 'drum');
// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// eliminats va [], no s'han eliminat elements

// myFish val ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// eliminem 1 element a la posici贸 3
eliminats = myFish.splice(3, 1);
// myFish val ['angel', 'clown', 'drum', 'surgeon']
// eliminats val ['mandarin']

// myFish val ['angel', 'clown', 'drum', 'surgeon']
// Eliminem 1 element a la posici贸 2, i inserim 'trumpet'
eliminats = myFish.splice(2, 1, 'trumpet');
// myFish val ['angel', 'clown', 'trumpet', 'surgeon']
// eliminats val ['drum']

// myFish val ['angel', 'clown', 'trumpet', 'surgeon']
// eliminem 2 elements de la posici贸 0, i inserim 'parrot', 'anemone' i 'blue'
eliminats = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// eliminats val ['angel', 'clown']

// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// eliminem 2 elements de la posici贸 3
eliminats = myFish.splice(myFish.length -3, 2);
// myFish val ['parrot', 'anemone', 'surgeon']
// eliminats val ['blue', 'trumpet']

Especificacions

Especificaci贸 Estat Comentaris
ECMAScript 3rd Edition (ECMA-262) Standard Definici贸 inicial. Implementat a 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

Compatibilitat amb navegadors

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Caracter铆stica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport b脿sic 1.0 1.0 (1.7 or earlier) 5.5 (Yes) (Yes)
Caracter铆stica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport b脿sic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Compatibilitat amb versions anteriors

A JavaScript 1.2 el m猫tode splice() retornava l'element eliminat si nom茅s s'havia eliminat un sol element (茅s a dir, si el valor del par脿metre comptadorEliminar era 1); en qualsevol altre cas retornava un array contenit els elements eliminats.

Nota: L'煤ltim navegador en utilitzar JavaScript 1.2 va ser el Netscape Navigator 4, aix铆 que podeu asumir que splice() sempre retornar脿 un array. Aquest 茅s el cas quan un objecte JavaScript disposa de la propietat length i un m猫tode splice(),console.log() (en-US) el tracta com si f贸s un objecte array. Comprovar-ho amb instanceof Array retornar脿 false.

Vegeu tamb茅