Los conjuntos pueden ser muy poderosos si entiendes cómo usarlos. Algunas aplicaciones de conjuntos incluyen la resolución de problemas de conteo donde puede que desee encontrar la cantidad de formas en que puede agrupar elementos.
Otra aplicación es problemas que requieren que encuentres relaciones entre elementos. La especificación ECMAScript no incluye métodos para operar en conjuntos de esta manera. Pero es posible crear tu propio.
Lo que sigue es una descripción general de la teoría de conjuntos con aplicaciones prácticas que puede utilizar para ampliar las capacidades de JavaScript y resolver problemas más complejos..
Un conjunto es una colección desordenada de elementos que son únicos. Por ejemplo, la lista de todos los empleados en su trabajo es un conjunto. Cada empleado sería un elemento del conjunto. En realidad, estos elementos se almacenarán utilizando una identificación o un número de Seguro Social porque estos son valores que podemos garantizar que serán únicos. Tenga en cuenta que el orden de estos elementos es irrelevante para nosotros porque la clasificación de las ID o los números de la Seguridad Social no tiene significado.
Llamamos a nuestro conjunto de empleados el conjunto universal porque contiene todos los elementos en consideración. Imaginemos otro conjunto. Este conjunto es la lista de empleados de su empresa que trabajan en el departamento de ingeniería. Este es un subconjunto de nuestro conjunto de empleados porque cada elemento del conjunto de ingeniería también existe en el conjunto de empleados. Otro subconjunto es la lista de empleados que son contratistas independientes. Aquí es cómo crearíamos estos conjuntos en JavaScript:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let freelancers = new Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']);
Si desea agregar otra persona a uno de nuestros conjuntos, usaríamos la sintaxis set.add (valor)
y reemplazar conjunto
Con el nombre de nuestro set y valor
con el valor del elemento que se agrega. Si intentamos agregar un elemento que ya está en el conjunto, no se agregará. Ejemplo:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); engineering.add ('Gohan'); console.log (ingeniería);
Esto imprimirá el Set 'Alberta', 'Dr. Gero ',' Trunks ',' Bulma ',' Gohan '.
En este momento, puedes estar pensando ¿y qué? ¿Qué puedo hacer con esta información? A continuación, veremos cómo podemos operar en conjuntos para ayudarnos a resolver algunos problemas comunes..
¿Qué sucede si queremos encontrar a todos los empleados de nuestra empresa que sean autónomos o que trabajen en el departamento de ingeniería? Tendríamos que combinar los dos conjuntos y luego eliminar cualquier nombre duplicado. Esto se llama la unión.
La unión de dos conjuntos es el conjunto que contiene elementos de cualquiera de los conjuntos o de ambos conjuntos. Observe cómo los elementos de nuestro conjunto de ingeniería también se encuentran en el conjunto de profesionales independientes. Aquí hay una forma de encontrar la unión de ambos conjuntos:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let freelancers = new Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let union = new Set ([... engineering, ... freelancers]); console.log (union);
los ...
operador convierte nuestro conjunto en una matriz, y después de combinar las dos matrices, el Conjunto
El constructor elimina los elementos duplicados. La unión de los dos conjuntos será Set 'Alberta', 'Dr. Gero ',' Trunks ',' Bulma ',' Gohan ',' Piccolo ',' Vegeta ',' Goku '.
¿Cuál es la unión de los conjuntos [1, 3, 5, 7, 9] y [2, 3, 4, 6]??
Supongamos que queremos encontrar a todos los empleados que se encuentran en el departamento de ingeniería y que sean autónomos. Esta es la intersección de los conjuntos. La intersección de dos conjuntos es el conjunto que contiene elementos en ambos conjuntos..
Para reproducir esto, podemos buscar a través de un conjunto y verificar si cada elemento está en el otro conjunto. Para verificar si un elemento está en un conjunto, usamos el tiene
método. Ejemplo:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); console.log (engineering.has ('Alberta'));
Esto volvería cierto. Utilizando la tiene
método, podemos filtrar nuestro conjunto de ingeniería para los elementos que también se encuentran en el conjunto de profesionales independientes.
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let freelancers = new Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); dejar intersección = nuevo Conjunto ([... ingeniería] .filter (x => freelancers.has (x))); console.log (intersección);
La intersección de ingeniería y autónomos es Set 'Trunks', 'Gohan'.
¿Cuál es la intersección de los conjuntos [1, 3, 5, 7, 9] y [2, 3, 4, 6]?
Consideremos el escenario en el que queremos encontrar a los ingenieros que no son autónomos. Esta es la diferencia. La diferencia de dos conjuntos es el conjunto que contiene elementos que están en el primer conjunto, pero no en el segundo conjunto.
Para nosotros, eso significa que comenzaremos con nuestro conjunto de ingeniería y luego eliminaremos cualquier elemento que también esté en el conjunto de profesionales independientes. Ejemplo:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let freelancers = new Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); dejar diferencia = conjunto nuevo ([... ingeniería] .filter (x =>! freelancers.has (x))); console.log (diferencia);
La diferencia entre el conjunto de ingeniería y el conjunto de freelancers es el conjunto 'Alberta', 'Dr. Gero ',' Bulma '. Si queremos obtener la lista de personas que son freelancers y no ingenieros, comenzamos con el conjunto de freelancers y eliminamos los elementos que aparecen en el conjunto de ingenieros. Ejemplo:
let Difference = new Set ([... freelancers] .filter (x =>! engineering.has (x))); console.log (diferencia);
Esto nos da un resultado diferente. La diferencia entre el conjunto de freelancers y el conjunto de ingeniería es Set 'Piccolo', 'Vegeta', 'Goku'.
Encuentra la diferencia de [1, 3, 5, 7, 9] y [2, 3, 4, 6].
Encuentra la diferencia de [2, 3, 4, 6] y [1, 3, 5, 7, 9].
Ahora, nos gustaría encontrar quién en la empresa es un ingeniero o un profesional independiente, pero no ambos. Esta es la diferencia simétrica. La diferencia simétrica de dos conjuntos es el conjunto que contiene elementos de cualquier conjunto, pero no ambos conjuntos.
Un enfoque que podríamos usar es encontrar la unión de los dos conjuntos (todos los que sean ingenieros, freelance o ambos) y restar la intersección (todos los que son ingenieros y freelancer). Combinando las técnicas que utilizamos anteriormente, podemos obtener la diferencia simétrica con el siguiente código:
dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let freelancers = new Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let union = new Set ([... engineering, ... freelancers]); let intersection = new Set ([… engineering] .filter (x => freelancers.has (x)) let simmetricDifference = new Set ([… union] .filter (x =>! intersection.has (x))); console.log (symmetricDifference);
La diferencia simétrica de nuestro conjunto de ingeniería y nuestro conjunto de freelancers es el Conjunto 'Alberta', 'Dr. Gero ',' Bulma ',' Piccolo ',' Vegeta ',' Goku '.
Encuentre la diferencia simétrica de [1, 3, 5, 7, 9] y [2, 3, 4, 6].
Si tenemos nuestro conjunto de empleados y un conjunto de ingenieros, ¿cómo podríamos encontrar el conjunto de todas las personas que no son ingenieros? Una cosa que podríamos hacer es restar el conjunto de ingenieros del conjunto de empleados. Este conjunto es el complemento de nuestro conjunto de ingenieros en relación con el conjunto de nuestros empleados. Ejemplo:
dejar que los empleados = ['Alberta', 'Dr. Gero ',' Trunks ',' Bulma ',' Gohan ',' Goku ',' Piccolo ',' Vegeta ']; dejar ingeniería = nuevo conjunto (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); dejar complemento = nuevo Set ([... empleados] .filter (x =>! engineering.has (x))); console.log (complemento);
El complemento al conjunto de ingeniería en relación con el conjunto de nuestros empleados es el conjunto 'Goku', 'Piccolo', 'Vegeta'.
Dado el conjunto universal [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], encuentre el complemento para establecer [2, 4, 6, 8, 10].
Los conjuntos son útiles cuando necesitas comparar diferentes listas, combinar listas o encontrar elementos únicos en una lista. La próxima vez que tenga un problema en el que necesite analizar los datos de esta manera, considere usar una de las operaciones de conjunto mencionadas anteriormente. Aquí hay una lista de los términos clave que se discutieron:
Como de costumbre, recuerde que si está buscando recursos adicionales para estudiar o usar en su trabajo, consulte lo que tenemos disponible en el mercado de Envato.