Skip to content

Commit aa06600

Browse files
authored
Merge pull request mouredev#7710 from wapastorv/main
#18 - Javascript
2 parents 7d19987 + 3f300a2 commit aa06600

File tree

2 files changed

+126
-13
lines changed

2 files changed

+126
-13
lines changed

Roadmap/18 - CONJUNTOS/javascript/wapastorv.js

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,36 +54,75 @@ console.log(arregloDeNumeros.includes(5)); // true
5454
const array1 = [1, 2, 3, 6];
5555
const array2 = [1, 2, 3, 4, 5];
5656

57+
console.log("Arreglo original 1: ",array1);
58+
console.log("Arreglo original 2: ",array2);
59+
60+
// Crear conjuntos a partir de arreglos
61+
const conjuntoA = new Set(array1);
62+
const conjuntoB = new Set(array2);
63+
5764
// Operaciones de conjuntos con arreglos en JavaScript usando Set y Arreglos directamente
58-
// Set es una estructura de datos que no permite elementos duplicados
59-
const unionArraySet = new Set([...array1, ...array2]);
60-
console.log("Union de conjuntos con SET: ",unionArraySet); // [1, 2, 3, 1, 2, 3, 4, 5]
65+
// Set es una estructura de datos que no permite elementos duplicados, por lo que es ideal para trabajar con conjuntos.
66+
67+
// Union de conjuntos
6168

62-
// Arreglos directamente
69+
function unionConSet(setA, setB) {
70+
return new Set([...setA, ...setB]);
71+
}
72+
73+
console.log("Union de conjuntos con SET: ",unionConSet(conjuntoA,conjuntoB)); // [1, 2, 3, 1, 2, 3, 4, 5]
74+
75+
// Union mantenimentdo la estructua de arreglo
6376
const unionArray = (array1, array2) => {
6477
return [...new Set([...array1, ...array2])];
6578
}
6679
console.log("Union de arreglos",unionArray(array1, array2)); // [1, 2, 3, 4, 5, 6]
6780

6881

69-
// Intersección de conjuntos
70-
// Set es una estructura de datos que no permite elementos duplicados
71-
const conjuntoA = new Set(array1);
72-
const conjuntoB = new Set(array2);
7382

74-
const intersectionArraySet =conjuntoA.filter(x => conjuntoB.has(x));
75-
console.log("Intersecion de conjuntos con SET",intersectionArraySet); // [1, 2, 3]
76-
// Intersección de arreglos directamente
83+
// Intersección de conjuntos
84+
// La intersección contiene solo los elementos que están en ambos conjuntos.
7785

86+
function intersectionConSet(setA, setB) {
87+
return new Set([...setA].filter(x => setB.has(x)));
88+
}
89+
console.log("Intersecion de conjuntos con SET",intersectionConSet(conjuntoA,conjuntoB)); // [1, 2, 3]
7890

91+
// Intersección mantenimentdo la estructua de arreglo
7992
const intersectionArray = (array1, array2) => {
8093
return array1.filter(value => array2.includes(value));
8194
}
8295
console.log("Intersecion de arreglos",intersectionArray(array1, array2)); // [1, 2, 3]
8396

8497

98+
// Difference de conjuntos
99+
// La diferencia contiene los elementos que están en el primer conjunto pero no en el segundo.
100+
101+
// Diferencia con la estructura de set
102+
const differenceArraySet = (setA, setB) => {
103+
return new Set([...setA].filter(x => !setB.has(x)));
104+
}
105+
console.log("Diferencia con la estrucura de set: ",differenceArraySet(conjuntoA,conjuntoB)); // [6]
106+
107+
// Diferencia con la estructura de arreglos
108+
const differenceArray = (array1, array2) => {
109+
return array1.filter(value => !array2.includes(value));
110+
}
111+
console.log("Diferencia con la estructura de arreglos: ",differenceArray(array1, array2)); // [6]
112+
113+
// Diferencia simétrica de conjuntos
114+
// La diferencia simétrica contiene los elementos que están en uno de los conjuntos pero no en ambos.
85115

116+
//Diferencia simétrica con la estructura de set
117+
const symmetricDifferenceArraySet = (setA, setB) => {
118+
return new Set([...setA].filter(x => !setB.has(x)).concat([...setB].filter(x => !setA.has(x))))
119+
}
120+
console.log("Diferencia simétrica con la estructura de set: ",symmetricDifferenceArraySet(conjuntoA,conjuntoB)); // [4, 5, 6]
121+
122+
// Diferencia simétrica con la estructura de arreglos
123+
const symmetricDifferenceArray = (array1, array2) => {
124+
return array1.filter(value => !array2.includes(value)).concat(array2.filter(value => !array1.includes(value)));
125+
}
86126

87-
const differenceArraySet = new Set(array1.filter(x => !array2.includes(x)));
88-
console.log(differenceArraySet); // [6]
127+
console.log("Diferencia simétrica con la estructura de arreglos: ",symmetricDifferenceArray(array1, array2)); // [4, 5, 6]
89128

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// ENUMS en JavaScript
2+
/*
3+
Los enums en JavaScript son una forma de crear un conjunto de constantes que pueden ser utilizadas en cualquier parte de nuestro código.
4+
los enumeradores (enums) no existen como una característica nativa del lenguaje, pero podemos simularlos utilizando objetos o técnicas específicas.
5+
*/
6+
7+
// Definimos un objeto con las constantes que necesitamos
8+
const diasDeLaSemana = {
9+
LUNES: 1,
10+
MARTES: 2,
11+
MIERCOLES: 3,
12+
JUEVES: 4,
13+
VIERNES: 5,
14+
SABADO: 6,
15+
DOMINGO: 7
16+
};
17+
18+
// Utilizamos las constantes en nuestro código, por ejemplo:
19+
20+
let dia = diasDeLaSemana.LUNES;
21+
console.log(dia); // 1
22+
23+
// Podemos utilizar un switch para hacer algo diferente dependiendo del valor de la constante:
24+
switch (dia) {
25+
case diasDeLaSemana.LUNES:
26+
console.log('Hoy es Lunes');
27+
break;
28+
case diasDeLaSemana.MARTES:
29+
console.log('Hoy es Martes');
30+
break;
31+
case diasDeLaSemana.MIERCOLES:
32+
console.log('Hoy es Miércoles');
33+
break;
34+
case diasDeLaSemana.JUEVES:
35+
console.log('Hoy es Jueves');
36+
break;
37+
case diasDeLaSemana.VIERNES:
38+
console.log('Hoy es Viernes');
39+
break;
40+
case diasDeLaSemana.SABADO:
41+
console.log('Hoy es Sábado');
42+
break;
43+
case diasDeLaSemana.DOMINGO:
44+
console.log('Hoy es Domingo');
45+
break;
46+
default:
47+
console.log('Día no válido');
48+
}
49+
50+
// Podemos hacer un bucle para recorrer todas las constantes:
51+
for (let dia in diasDeLaSemana) {
52+
console.log(diasDeLaSemana[dia]);
53+
}
54+
55+
// Podemos obtener el nombre de la constante a partir de su valor:
56+
function getDia(dia) {
57+
for (let d in diasDeLaSemana) {
58+
if (diasDeLaSemana[d] === dia) {
59+
return d;
60+
}
61+
}
62+
return null;
63+
}
64+
65+
console.log(getDia(1)); // LUNES
66+
67+
function obtenerNombreDelDia(valor){
68+
const clave = Object.keys(diasDeLaSemana).find(key => diasDeLaSemana[key] === valor);
69+
70+
return clave || 'No existe';
71+
}
72+
73+
console.log(obtenerNombreDelDia(1)); // LUNES
74+
console.log(obtenerNombreDelDia(8)); // No existe

0 commit comments

Comments
 (0)