Array.prototype.splice()

Este articulo necesita una revisión editorial. Cómo puedes ayudar.

Resumen

El metodo splice() cambia el contenido de un array eliminando elementos existentes y/o agregando nuevos elementos.

Sintaxis

array.splice(start, deleteCount[, item1[, item2[, ...]]])

Parámetros

start
Indice donde se comenzara a cambiar el arreglo (con 0 como origen). Si es mayor a la longitud del arreglo, el punto inicial será la longitud del arreglo. Si es negativo, empezará esa cantidad de elementos contando desde el final.
deleteCount
Un entero indicando el número de elementos del array que se tienen que eliminar. Si deleteCount es igual a 0, no se eliminará ningún elemento. En casos como este, se debe especificar, como mínimo, un nuevo elemento. Si deleteCount es mayor que el número de elementos restantes desde el índice indicado en  start, se eliminaran todos los elementos hasta el final del array.
Si deleteCount se omite, deleteCount será igual a (arr.length - start).
item1, item2, ...
Los elementos que se agregaran al array. Si no se especifica ningún elemento, splice() solamente eliminará elementos del array.

Devuelve

Un array que contiene los elementos eliminados. Si sólo se ha eliminado un elemento, devuelve un array con un sólo elemento. Si no se ha eliminado ningún elemento, devuelve un array vacío.

Descripción

Si especifica un número diferente de elementos a agregar que los que se eliminarán, el array tendrá un tamaño diferente al original una vez finalizada la llamada.

Ejemplos

Ejemplo: Usando splice()

El siguiente script ilustra el uso de splice():

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

// elimina 0 elementos desde el índice 2, e inserta 'drum'
var removed = myFish.splice(2, 0, 'drum');
// myFish es ahora ['angel', 'clown', 'drum', 'mandarin', 'surgeon']
// removed es [], no se eliminaron elementos

// myFish es ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] 
// elimina 1 elemento desde el índice 3
removed = myFish.splice(3, 1);
// myFish es ahora ['angel', 'clown', 'drum', 'surgeon']
// removed es ['mandarin']

// myFish es ['angel', 'clown', 'drum', 'surgeon'] 
// elimina 1 elemento desde el índice 2, e inserta 'trumpet'
removed = myFish.splice(2, 1, 'trumpet');
// myFish es ahora ['angel', 'clown', 'trumpet', 'surgeon']
// removed es ['drum']

// myFish es ['angel', 'clown', 'trumpet', 'surgeon'] 
// elimina 2 elemento desde el índice 0, e inserta 'parrot', 'anemone' y 'blue'
removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish es ahora ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon']
// removed es ['angel', 'clown']

// myFish es ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] 
// elimina 2 elemento desde el índice 2
removed = myFish.splice(myFish.length -3, 2);
// myFish es ahora ['parrot', 'anemone', 'surgeon']
// removed es ['blue', 'trumpet']

Especificaciones

Especificación Estado Comentario
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented 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 2017 Draft (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Draft  

Compatibilidad con los navegadores

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 5.5 (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Compatibilidad con versiones anteriores

En JavaScript 1.2 el método splice() devuelve el elemento eliminado, solo si se elimina un elemento (el parámetro deleteCount es 1); caso contrario, el método devuelve un array que contiene los elementos eliminados.

Véase también

  • push() / pop() — add/remove elements from the end of the array
  • unshift() / shift() — add/remove elements from the beginning of the array
  • concat() — returns a new array comprised of this array joined with other array(s) and/or value(s)

Etiquetas y colaboradores del documento

 Colaboradores en esta página: Joshuete1997, NoTengoBattery, pawer13, Guitxo, alvarouribe
 Última actualización por: Joshuete1997,