Set, Map y Nuevas Estructuras de Datos
Volver a clases
Fundamentos de Programación●●Intermedio

Set, Map y Nuevas Estructuras de Datos

120 min
0 vistas

Uso práctico de Set, Map, WeakSet, WeakMap y Symbol.

Set

  • Colección de valores únicos, ideal para eliminar duplicados. Ejemplo:
    javascript
    1const numeros = [1, 2, 2, 3];
    2const unicos = new Set(numeros);
    3console.log([...unicos]); // [1, 2, 3]
  • Operaciones comunes: add, has, delete, size. Ejemplo:
    javascript
    1const tags = new Set();
    2tags.add("js");
    3console.log(tags.has("js")); // true
    4tags.delete("js");
    5console.log(tags.size); // 0
  • Casos de uso: listas únicas, tracking de visitados. Ejemplo:
    javascript
    1const visitados = new Set();
    2visitados.add("/home");
    3if (!visitados.has("/perfil")) visitados.add("/perfil");

Map

  • Diccionario avanzado con claves de cualquier tipo. Ejemplo:
    javascript
    1const roles = new Map();
    2roles.set(1, "admin");
    3roles.set(2, "user");
    4console.log(roles.get(1)); // "admin"
  • Mantiene el orden de inserción y es eficiente en accesos frecuentes. Ejemplo:
    javascript
    1const config = new Map([
    2  ["theme", "dark"],
    3  ["lang", "es"],
    4]);
  • Casos de uso: cache, conteo de frecuencias, config avanzada. Ejemplo:
    javascript
    1const palabras = ["hola", "hola", "js"];
    2const frec = new Map();
    3for (const p of palabras) {
    4  frec.set(p, (frec.get(p) || 0) + 1);
    5}

WeakSet y WeakMap

  • Colecciones con referencias débiles, ideales para evitar fugas de memoria. Ejemplo:
    javascript
    1const vistos = new WeakSet();
    2const obj = { id: 1 };
    3vistos.add(obj);
  • Uso en metadatos privados o tracking de objetos temporales. Ejemplo:
    javascript
    1const privados = new WeakMap();
    2class Usuario {
    3  constructor(nombre) {
    4    privados.set(this, { nombre });
    5  }
    6}

Symbol

  • Identificadores únicos para propiedades privadas o claves especiales. Ejemplo:
    javascript
    1const ID = Symbol("id");
    2const user = { nombre: "Ana", [ID]: 123 };
    3console.log(user[ID]); // 123

Ejemplos de Código

3 ejemplos

Duplicados con Set

javascript
1const numeros = [1, 2, 2, 3, 3, 4];
2const unicos = [...new Set(numeros)];

Frecuencias con Map

javascript
1const palabras = ["hola", "hola", "js"];
2const frec = new Map();
3
4for (const p of palabras) {
5  frec.set(p, (frec.get(p) || 0) + 1);
6}

Datos privados

javascript
1const privados = new WeakMap();
2class Usuario {
3  constructor(nombre) {
4    privados.set(this, { nombre });
5  }
6}

Recursos

3 recursos disponibles

¡Hora de Practicar!

PrácticaIntermedio1 min

Práctica guiada - Inventario con Map y Set

Práctica

Crear un inventario con productos en Map y categorías únicas en Set, con conteo y filtrado.

Desafío de Código

EjercicioIntermedio15 min

Ejercicios - Estructuras modernas

Ejercicios

(1) Eliminar duplicados, (2) contar frecuencias de palabras, (3) experimentar con WeakMap.

Taller Práctico

TallerIntermedio15 min

Proyecto de la semana

Proyecto

Sistema de gestión de estudiantes con Map/Set, filtros, reportes y estadísticas básicas.

ALVESC ACADEMY - Plataforma Educativa