--- 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 ---
El mètode splice()
modifica el contingut d'un array eliminant elements ja existents i/o afegint-ne de nous.
array.splice(inici, comptadorEliminar[, item1[, item2[, ...]]])
inici
comptadorEliminar
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.comptadorEliminar
aquest rebrà un valor per defecte igual a (arr.length - inici
).
item1, item2, ...
inici
. Si no s'especifcia cap element, splice()
només eliminarà elements de l'array.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.
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.
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']
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')}} |
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}} |
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.