Métodos pop y delete en arrays

Clase 6 de 29Curso de Estructuras de Datos con JavaScript

Resumen

Domina cómo eliminar elementos de un array con pop y un método personalizado delete dentro de una clase en JavaScript. Aprenderás a usar this, la length y la reindexación para mantener la estructura del array, devolviendo siempre el elemento eliminado. Explicación clara, ejemplos y código listos para usar.

¿Cómo eliminar el último elemento con pop en JavaScript?

Eliminar el último elemento es directo con pop: identifica el índice final con length - 1, guarda el valor, usa el keyword delete para borrarlo del objeto data y reduce la length en 1. Así, también sabes qué elemento fue borrado, porque pop debe retornarlo.

¿Por qué usar length - 1 para el último índice?

  • Los índices inician en cero.
  • Si length es 3, el último índice es 2.
  • Evitas acceder a un índice que no existe.

¿Cómo se implementa pop dentro de una clase?

class MyArray { constructor() { this.length = 0; this.data = {}; } // ... get y push ya implementados previamente. pop() { const lastIndex = this.length - 1; const lastItem = this.data[lastIndex]; delete this.data[lastIndex]; // keyword delete borra la propiedad. this.length--; return lastItem; } }

Puntos clave:

  • this.data[this.length - 1] obtiene el último elemento.
  • delete borra esa posición del objeto interno.
  • this.length-- mantiene la longitud correcta del array.

¿Cómo borrar por índice y reacomodar con delete y shift index?

Cuando no borras el último elemento, necesitas reacomodar índices. La idea: desde el índice eliminado, cada elemento se recorre una posición a la izquierda. Después, se borra el último duplicado y se reduce length.

¿Cuál es la diferencia entre el keyword delete y el método delete?

  • delete (palabra reservada): borra una propiedad del objeto, por ejemplo, delete this.data[i].
  • delete (método de la clase): tu método personalizado que recibe un index, reacomoda y devuelve el elemento borrado.

¿Cómo reindexar eficientemente con shift index?

  • Inicia el bucle en el índice a borrar para evitar recorrer desde cero.
  • Copia el valor de i + 1 en i para “correr” los elementos a la izquierda.
  • Borra el último índice y reduce length.
class MyArray { constructor() { this.length = 0; this.data = {}; } // ... get y push ya implementados previamente. shiftIndex(index) { for (let i = index; i < this.length - 1; i++) { this.data[i] = this.data[i + 1]; } delete this.data[this.length - 1]; this.length--; } delete(index) { const item = this.data[index]; this.shiftIndex(index); return item; } }

Ejemplo práctico:

  • Agrega: Diego, Karen, Óscar con push.
  • pop() devuelve y borra Óscar (último).
  • delete(1) borra Karen y mueve Óscar a índice 1.

¿Qué habilidades desarrollas y qué sigue?

Este contenido fortalece tu base en estructuras de datos con clases de JavaScript:

  • Manejo de this, constructor, métodos y organización en clases.
  • Uso de índices y length para direccionar el último elemento.
  • Diferencia entre keyword delete y método personalizado delete.
  • Reindexación con un bucle optimizado iniciando en el índice objetivo.
  • Patrón de retorno: el método devuelve el elemento eliminado.

Reto propuesto:

  • Implementa un método para agregar un elemento al inicio del array.
  • Implementa un método para eliminar un elemento al inicio del array.

¿Te animas a compartir tu solución o una mejora al algoritmo de reindexación? Deja tus ideas y dudas en los comentarios.