Saltar al contenido principal
Publicado el

Sets y Maps en JavaScript

Compartir:

Introducción

JavaScript ES6 introdujo dos nuevos tipos de colecciones de datos: Sets y Maps. Ambos ofrecen formas eficientes y flexibles de trabajar con colecciones de datos. En este artículo, exploraremos las características de Sets y Maps, entenderemos sus diferencias y aplicaciones, y veremos ejemplos de cómo pueden utilizarse.

¿Qué son los Sets?

Un Set es una colección de valores que no permite duplicados. Es especialmente útil para gestionar colecciones de elementos únicos.

Características de los Sets

  • Unicidad: Cada elemento en un Set es único.
  • Sin indexación: Los Sets no están indexados como los arrays. No es posible acceder a los elementos por un índice.

Creación y manipulación de Sets

let miSet = new Set();

// Agregando elementos
miSet.add(1);
miSet.add(2);
miSet.add(2); // No tiene efecto, ya que 2 ya está en el set

// Verificando la presencia de un elemento
console.log(miSet.has(1)); // true

// Tamaño del Set
console.log(miSet.size); // 2

// Eliminando elementos
miSet.delete(1);

Iteración sobre un Set

Los Sets pueden iterarse usando for...of o los métodos forEach.

for (let elemento of miSet) {
  console.log(elemento);
}

¿Qué son los Maps?

Un Map es una colección de pares clave-valor. A diferencia de los objetos, las claves en un Map pueden ser de cualquier tipo de dato.

Características de los Maps

  • Claves flexibles: Las claves pueden ser de cualquier tipo, incluidas funciones, objetos y cualquier tipo primitivo.
  • Orden conservado: A diferencia de los objetos, el orden de los elementos se mantiene.

Creación y manipulación de Maps

let miMap = new Map();

// Definiendo claves y valores
miMap.set('clave1', 'valor1');
miMap.set('clave2', 'valor2');

// Accediendo a los valores
console.log(miMap.get('clave1')); // valor1

// Tamaño del Map
console.log(miMap.size); // 2

// Eliminando elementos
miMap.delete('clave1');

Iteración sobre un Map

Podemos iterar sobre las claves, los valores o ambos usando for...of o forEach.

for (let [clave, valor] of miMap) {
  console.log(`${clave}: ${valor}`);
}

Diferencias entre Sets y Maps

  • Uso: Los Sets se usan para colecciones de valores únicos, mientras que los Maps se usan para asociar pares clave-valor.
  • Rendimiento: Tanto Sets como Maps ofrecen operaciones rápidas de inserción y búsqueda, superando frecuentemente a los objetos en eficiencia para grandes conjuntos de datos.

Buenas Prácticas y Consejos

  1. Elige la estructura correcta: Usa Sets cuando necesites una colección de elementos únicos y Maps para mapeos clave-valor.
  2. Cuidado con las claves de Map: Recuerda que los Maps pueden tener claves de cualquier tipo. Mantén un control consistente sobre los tipos de clave para evitar confusiones.
  3. Considera el rendimiento: Para grandes cantidades de datos, los Sets y Maps pueden ser más eficientes que los objetos o arrays.

Conclusión

Los Sets y Maps son adiciones poderosas a JavaScript, que ofrecen formas eficientes y flexibles de trabajar con colecciones de datos. Comprender sus características y diferencias es esencial para elegir la estructura de datos correcta según tus necesidades e implementar soluciones efectivas.

Happy coding!