Construcción de Arrays con Clases en JavaScript

Clase 4 de 29Curso de Estructuras de Datos con JavaScript

Resumen

¿Qué son los arrays y cómo operan en el almacenamiento de datos?

Los arrays o arreglos son la primera estructura de datos que muchos programadores se encuentran al adentrarse en el mundo de la programación. En JavaScript, los arrays son colecciones de elementos que se encuentran indexados secuencialmente. Los programadores pueden almacenar datos relacionados en un formato accesible y organizado. JavaScript ofrece arrays dinámicos por defecto, permitiendo flexibilidad en términos de agregar y eliminar elementos sin definir inicialmente el tamaño del array.

¿Cómo manejan los arrays la memoria estática y dinámica?

Los arrays pueden ser estáticos o dinámicos y cada uno maneja la memoria de manera diferente.

  • Arrays estáticos: En lenguajes como C, se debe especificar el tamaño del array al momento de crearlo. Esto define un número fijo de slots en memoria que no puede cambiar durante la ejecución del programa. Este tipo de arrays es menos flexible, ya que no se puede cambiar su tamaño una vez que se han definido los slots.

  • Arrays dinámicos: En cambio, JavaScript maneja arrays dinámicos. Estos no requieren una dimensión específica al inicio, lo que permite que puedan crecer o reducirse sobre la marcha. Cuando se crea un array dinámico inicialmente, JavaScript reserva más espacio del necesario (habitualmente el doble) como preparación para un posible crecimiento.

¿Qué sucede al modificar arrays?

Al modificar un array, particularmente uno dinámico, JavaScript efectúa varios procesos tras bambalinas. Si el array crece más allá del espacio reservado inicialmente, el motor de JavaScript:

  1. Copia el array: Duplica el array y encuentra el espacio necesario en la memoria para el nuevo tamaño.
  2. Duplica el espacio: Encuentra el espacio para el array nuevo con una capacidad doble a la actual.
  3. Libera memoria: Libera el espacio previamente ocupado por el array original.

Este proceso asegura que el array pueda crecer pero también puede llevar a problemas si el tamaño explota, ya que duplicar continuamente el espacio eventualmente puede agotar la memoria disponible.

¿Cómo crear un array personalizado con JavaScript?

La creación de un array mediante clases en JavaScript permite apreciar el funcionamiento interno de esta estructura de datos esencial. Al construir un array desde cero, es posible comprender el código por detrás de métodos familiares como .push() o .pop().

Aquí está un ejemplo básico de cómo podríamos definir un array con una clase en JavaScript para visualizar su funcionamiento interno:

class MiArray {
  constructor() {
    this.length = 0;
    this.data = {};
  }

  get(index) {
    return this.data[index];
  }

  push(item) {
    this.data[this.length] = item;
    this.length++;
    return this.length;
  }

  pop() {
    const lastItem = this.data[this.length-1];
    delete this.data[this.length-1];
    this.length--;
    return lastItem;
  }

  delete(index) {
    const item = this.data[index];
    this.shiftItems(index);
    return item;
  }

  shiftItems(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--;
  }
}

Con este código, podrás medir las modificaciones que se realizan de forma manual, entendiendo mejor cómo JavaScript maneja estas tareas automáticamente. ¡Sigue aprendiendo y explorando! La programación no tiene límites.