Este titulo podría haber sido "Como no confundirse en Javascript con los métodos splice y slice", pero probablemente no pudiera recordar la diferencia entre los dos.
Así que espero que este truco nos ayude a ambos en el futuro:
S (p) lice = Slice + (p) => Slice + in (p) lace
Array.prototype.slice()
Array.prototype.slice(), es usado para retornar la copia de un arreglo desde el indice del inicio
hasta el penúltimo final
, excluyendo el final
.
Como el nombre sugiere, esto es usado para rebanar los elementos y enviarlos fuera del arreglo a uno nuevo. Pero a diferencia de rebanar un pastel, rebanar el actual arreglo no lo modifica (pastel infinito!).
Reglas
- Un nuevo arreglo es retornado y el original no es modificado.
- Si, el
final
es omitido, elfinal
llega a ser el último elemento. - Si, el
inicio
es menor que 0, los elementos son contados en reversa osea desde el final.
Como tu puedes mirar pastelInfinito
no esta modificado.
Array.prototype.splice()
Splice realiza operaciones en el lugar, lo que significa que modifica el arreglo existente.
Además de eliminar elementos, splice también se usa para añadir elementos. Splice es el "rebanado" del pastel en el mundo real:
Reglas
- Operaciones son realizadas en el mismo lugar
- Un arreglo es retornado con los elementos borrados.
- Si, el
inicio
es menor que 0, los elementos son contados en reversa osea desde el final. - Si
numeroElemEliminar
es omitido, los elementos hasta de inicio hasta el final seran borrados - Si, los elementos a insertar tales como
elemParaInsertar1
son saltados, los elementos solamente seran removidos.
Aquí pastel
esta modificado y reducido en tamaño.
Ejemplos de Código
En Resumen
Usa splice
si el original arreglo necesita ser modificado o los elementos necesitan ser añadidos.
Usa slice
para remover elementos, si el original arreglo no debería ser modificado.
Traducido del articulo JavaScript Array Slice vs Splice: the Difference Explained with Cake de Shruti Kapoor