Lección 9 · 9 de 20
Añadir, quitar y buscar · JavaScript
Los métodos básicos de los arrays en JavaScript: push, pop, shift, unshift, includes, indexOf, slice y splice, con una lista de la compra y una cola.

Los arrays traen métodos para cambiar la lista sin tocar los índices a mano. `push()` añade al final y `pop()` quita el último y lo devuelve: por eso last vale "cheese".
Por el principio funcionan igual `unshift()`, que añade, y `shift()`, que quita el primero y lo devuelve. Son los métodos de una cola: se entra por un extremo y se sale por el otro.
Para buscar, `includes()` responde true o false, y `indexOf()` da la posición del elemento, o -1 si no está, como pasa con "tea".
`slice(inicio, fin)` copia un trozo, desde inicio hasta antes de fin, sin cambiar el original; sin el segundo número, copia hasta el final. `splice(posición, cuántos)`, en cambio, modifica el array: queue.splice(1, 2) quita dos personas desde la posición 1, y queue.splice(1, 0, "Fran") inserta a Fran sin quitar a nadie.
Recuerde la diferencia: push, pop, shift, unshift y splice cambian el array; slice, includes e indexOf solo lo leen.
Código · main.js
// A shopping list that changes as we go.const list = ["bread", "milk", "eggs"];list.push("cheese"); // add at the endconsole.log("push: ", list);const last = list.pop(); // remove from the endconsole.log("pop: ", list, "removed", last);list.unshift("coffee"); // add at the startconsole.log("unshift:", list);const first = list.shift(); // remove from the startconsole.log("shift: ", list, "removed", first);// includes and indexOf: is it there, and where?console.log("Has milk?", list.includes("milk"));console.log("Position of eggs:", list.indexOf("eggs"));console.log("Position of tea:", list.indexOf("tea")); // -1: not found// slice copies a part and leaves the original as it was.const queue = ["Ana", "Ben", "Carla", "David", "Eva"];console.log("First three:", queue.slice(0, 3));console.log("From the third on:", queue.slice(2));// splice changes the original: it removes and/or inserts.const removed = queue.splice(1, 2); // remove 2 from index 1console.log("splice removed", removed, "->", queue);queue.splice(1, 0, "Fran"); // insert at index 1, remove noneconsole.log("After inserting:", queue);Salida · node main.js
push: [ 'bread', 'milk', 'eggs', 'cheese' ] pop: [ 'bread', 'milk', 'eggs' ] removed cheese unshift: [ 'coffee', 'bread', 'milk', 'eggs' ] shift: [ 'bread', 'milk', 'eggs' ] removed coffee Has milk? true Position of eggs: 2 Position of tea: -1 First three: [ 'Ana', 'Ben', 'Carla' ] From the third on: [ 'Carla', 'David', 'Eva' ] splice removed [ 'Ben', 'Carla' ] -> [ 'Ana', 'David', 'Eva' ] After inserting: [ 'Ana', 'Fran', 'David', 'Eva' ]
Para recordar
push/poptrabajan por el final;unshift/shift, por el principio.indexOfdevuelve-1si no encuentra el elemento.slicecopia sin cambiar el original.splicequita e inserta en el propio array.
Ejercicio
Simule la cola de una panadería: entran tres clientes con push, se atiende a dos con shift y una persona se cuela en la posición 0 con splice; escriba la cola en cada paso.