Métodos para modificar arrays
Aquí entra la ⚠️ TRAMPA CLÁSICA del módulo: algunos métodos mutan el array
original (lo cambian en el sitio) y otros devuelven una copia sin tocarlo.
Confundirlos es el origen de bugs muy escurridizos. En esta lección, push, pop,
shift, unshift y splice sí mutan; slice no. Tenlo presente.
Añadir y quitar por los extremos
const pila = [1, 2, 3];
pila.push(4); // añade al final -> [1, 2, 3, 4]
pila.pop(); // quita del final -> [1, 2, 3]
pila.unshift(0); // añade al inicio -> [0, 1, 2, 3]
pila.shift(); // quita del inicio -> [1, 2, 3]
| Método | Qué hace | Devuelve |
|---|---|---|
push |
añade al final | la nueva longitud |
pop |
quita del final | el elemento quitado |
unshift |
añade al inicio | la nueva longitud |
shift |
quita del inicio | el elemento quitado |
slice: copiar un trozo (no modifica)
slice(inicio, fin) devuelve una copia desde inicio hasta justo antes de
fin. No altera el array original.
const letras = ["a", "b", "c", "d"];
console.log(letras.slice(1, 3)); // ["b", "c"]
console.log(letras); // intacto: ["a","b","c","d"]
splice: insertar/eliminar (sí modifica)
splice(inicio, cuántosBorrar, ...nuevos) modifica el array en el sitio:
const lista = ["a", "b", "c"];
lista.splice(1, 1); // borra 1 desde el índice 1 -> ["a", "c"]
lista.splice(1, 0, "x"); // inserta "x" en el índice 1 -> ["a", "x", "c"]
Regla mnemotécnica: slice slimp (suave, copia); splice sparta (rudo, modifica).
Ejemplos
push y pop sobre una pila
const tareas = [];
tareas.push("lavar");
tareas.push("cocinar");
tareas.push("estudiar");
console.log(tareas); // ["lavar", "cocinar", "estudiar"]
const ultima = tareas.pop();
console.log(ultima, tareas); // "estudiar" ["lavar", "cocinar"]