Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Teoría de Conjuntos JS: Arrays

Cuando trabajamos con datos en programación, muchas veces lo hacemos en forma de conjuntos. Por ejemplo, si quieres comparar dos listas de usuarios o encontrar elementos comunes entre dos bases de datos, estás aplicando ideas de la teoría de conjuntos.

No necesitas ser un experto en matemáticas para usar estos conceptos, basta con entender algunos principios básicos y las operaciones más comunes. En esta lección, exploraremos las nociones esenciales de conjuntos y cómo aplicarlas en JavaScript.

Set


¿Qué es un Conjunto?

En términos simples, un conjunto es una colección de elementos únicos.

Por ejemplo, el conjunto de dígitos en nuestro sistema numérico es:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Lo más importante en un conjunto es que no puede haber elementos repetidos. Es decir, {1, 1, 3} no es un conjunto válido, pero {1, 3, 5} sí lo es.

Los conjuntos no solo aplican a números. También podemos pensar en un grupo de personas, las ciudades de un país o los ingredientes de una receta como conjuntos.

Por ejemplo:

  • Las ciudades de Colombia: {Bogotá, Medellín, Cali, Barranquilla, Cartagena}
  • Los colores primarios: {rojo, azul, amarillo}
  • Tus amigos en Facebook también forman un conjunto.

Relaciones entre Conjuntos

Podemos comparar conjuntos para ver si uno contiene a otro.

Por ejemplo, el conjunto de números naturales {1, 2, 3, 4, 5...} es parte del conjunto más grande de números enteros {...-2, -1, 0, 1, 2...}. En este caso:

  • Subconjunto: Todos los elementos de un conjunto están dentro de otro.
  • Superconjunto: Un conjunto que contiene completamente a otro.

Así lo podríamos representar gráficamente:

Conjunto real

Este tipo de relaciones son útiles en programación, por ejemplo, cuando queremos verificar si una lista de usuarios registrados pertenece a una lista general de clientes.


Operaciones con Conjuntos

Para que los conjuntos sean útiles, necesitamos realizar operaciones con ellos. Vamos a ver algunas de las más comunes.

Intersección

La intersección de dos conjuntos obtiene los elementos que tienen ambos conjuntos en común.

Ejemplo: Amigos en común en redes sociales

Si en una red social tienes una lista de amigos y otra persona tiene otra lista, la intersección serían los amigos en común.

const friends1 = ['Carlos', 'Mateo', 'Luis'];
const friends2 = ['Jorge', 'Luis', 'Santiago', 'Carlos', 'Fernando'];

// Encontramos los amigos en común usando Lodash
const amigosEnComun = _.intersection(friends1, friends2);
console.log(amigosEnComun); // ['Carlos', 'Luis']

Esto es útil en aplicaciones donde es necesario encontrar elementos compartidos, como productos comunes entre dos tiendas o eventos a los que asisten dos personas.


Unión

La unión de dos conjuntos crea un nuevo conjunto que contiene todos los elementos de ambos, eliminando duplicados.

Ejemplo: Lista total de amigos

const amigosUnidos = _.union(friends1, friends2);
console.log(amigosUnidos);
// ['Carlos', 'Mateo', 'Luis', 'Jorge', 'Santiago', 'Fernando']

Esto puede ser útil en aplicaciones que combinan datos de diferentes fuentes, como fusionar registros de clientes de varias bases de datos.


Diferencia

La diferencia entre dos conjuntos encuentra los elementos que están en el primer conjunto pero no en el segundo.

Ejemplo: Amigos que tú tienes pero el otro usuario no

const amigosDiferentes = _.difference(friends1, friends2);
console.log(amigosDiferentes); // ['Mateo']

Esta operación es útil cuando necesitas saber qué elementos faltan en una lista comparada con otra, por ejemplo, qué productos no están disponibles en cierto inventario.


Pertenencia a un Conjunto

Si queremos verificar si un elemento pertenece a un conjunto, podemos usar el método .includes() en JavaScript.

Ejemplo: Números considerados "de mala suerte"

const numerosTerribles = [4, 13];

if (numerosTerribles.includes(10)) {
  console.log('¡guau!');
} else {
  console.log('No es un número terrible.');
}

Esta operación es común al verificar si un usuario tiene ciertos permisos o si un producto está en la lista de favoritos de un usuario.


Resumen

  • El conjunto es una colección de elementos únicos.
  • El subconjunto es un conjunto cuyos elementos están completamente dentro de otro.
  • En intersección, buscamos los elementos en común entre dos conjuntos.
  • En unión, combinamos los elementos de ambos conjuntos sin duplicados.
  • En diferencia, obtenemos los elementos de un conjunto que no están en el otro.
  • La pertenencia permite verificar si un elemento está dentro de un conjunto.

Materiales adicionales

  1. La saga de los números (pdf).
  2. Método includes incorporado.
  3. Función intersection / Lodash.
  4. Función union / Lodash.
  5. Función difference / Lodash.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY