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. SideleteCount
es mayor que el número de elementos restantes desde el índice indicado enstart
, se eliminaran todos los elementos hasta el final del arary. - 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.