--- title: Array.prototype.splice() slug: Web/JavaScript/Reference/Global_Objects/Array/splice translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice original_slug: Web/JavaScript/Referencia/Objectes_globals/Array/splice ---
{{JSRef}}

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
{{SpecName('ES3')}} {{Spec2('ES3')}} Definició inicial. Implementat a JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.12', 'Array.prototype.splice')}} {{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.splice', 'Array.prototype.splice')}} {{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}} {{Spec2('ESDraft')}}

Compatibilitat amb navegadors

{{CompatibilityTable}}
Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic {{CompatChrome("1.0")}} {{CompatGeckoDesktop("1.7")}} {{CompatIE("5.5")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

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(),{{domxref("console.log()")}} el tracta com si fós un objecte array. Comprovar-ho amb instanceof Array retornarà false.

Vegeu també