Skip to content

Commit 532c5e4

Browse files
#18-javascript
1 parent f4e6e5c commit 532c5e4

File tree

2 files changed

+189
-111
lines changed

2 files changed

+189
-111
lines changed

Roadmap/03 - ESTRUCTURAS DE DATOS/javascript/caterinarodriguezdev.js

+109-111
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,72 @@
1616
* - También se debe proponer una operación de finalización del programa.
1717
*/
1818

19-
20-
console.log('--------------ESTRUCTURAS DE DATOS----------------');
21-
console.log('---------------------ARRAY------------------------');
19+
console.log("--------------ESTRUCTURAS DE DATOS----------------");
20+
console.log("---------------------ARRAY------------------------");
2221

2322
const arr = [1, 2, 3];
24-
console.log('array: ', arr);
23+
console.log("array: ", arr);
2524
arr.push(4);
26-
console.log('Inserción en el array de un 4. Resultado: ', arr);
25+
console.log("Inserción en el array de un 4. Resultado: ", arr);
2726
arr.pop();
28-
console.log('Borrado en el array', arr);
27+
console.log("Borrado en el array", arr);
2928
arr.shift();
30-
console.log('Borrado del primer elemento en el array', arr);
29+
console.log("Borrado del primer elemento en el array", arr);
3130

32-
let arrDesordenado = [2, 1, 0]
33-
console.log('array desordenando', arrDesordenado);
34-
arrDesordenado.sort()
35-
console.log('array ordenado', arrDesordenado);
31+
let arrDesordenado = [2, 1, 0];
32+
console.log("array desordenando", arrDesordenado);
33+
arrDesordenado.sort();
34+
console.log("array ordenado", arrDesordenado);
3635

3736
arrDesordenado[0] = 10;
38-
console.log('actualizamos array desordenado', arrDesordenado);
37+
console.log("actualizamos array desordenado", arrDesordenado);
3938

40-
console.log('---------------------SET------------------------');
39+
console.log("---------------------SET------------------------");
4140
// Los sets solo permiten datos únicos, no puede haber dos elementos repetidos
42-
const miSet = new Set([1, 2, 3])
43-
console.log('mi set es', miSet);
41+
const miSet = new Set([1, 2, 3]);
42+
console.log("mi set es", miSet);
4443
miSet.add(4);
45-
console.log('.add() añade un elemento a mi', miSet);
44+
console.log(".add() añade un elemento a mi", miSet);
4645
miSet.delete(3);
47-
console.log('borrando el elemento 3', miSet);
48-
console.log('el set tiene el elemento 4?', miSet.has(4));
46+
console.log("borrando el elemento 3", miSet);
47+
console.log("el set tiene el elemento 4?", miSet.has(4));
4948
miSet.clear();
50-
console.log('hacemos un clear del set', miSet);
51-
49+
console.log("hacemos un clear del set", miSet);
5250

53-
console.log('---------------------WEAKSET------------------------');
54-
const obj1 = {nombre: 'obj1'};
55-
const obj2 = {nombre: 'obj2'};
56-
const obj3 = {nombre: 'obj3'};
51+
console.log("---------------------WEAKSET------------------------");
52+
const obj1 = { nombre: "obj1" };
53+
const obj2 = { nombre: "obj2" };
54+
const obj3 = { nombre: "obj3" };
5755

5856
const miWeakSet = new WeakSet();
5957
miWeakSet.add(obj1);
6058
miWeakSet.add(obj2);
61-
console.log('my weak set', miWeakSet);
59+
console.log("my weak set", miWeakSet);
6260
miWeakSet.add(obj3);
63-
console.log('add obj3', miWeakSet);
61+
console.log("add obj3", miWeakSet);
6462
miWeakSet.delete(obj2);
65-
console.log('delete 3', miWeakSet);
66-
console.log('my weak set has obj1?', miWeakSet.has(obj1));
63+
console.log("delete 3", miWeakSet);
64+
console.log("my weak set has obj1?", miWeakSet.has(obj1));
6765

68-
69-
console.log('---------------------WEAKMAP------------------------');
66+
console.log("---------------------WEAKMAP------------------------");
7067
let weakMap = new WeakMap();
7168
let key1 = {};
7269
let key2 = {};
7370

7471
weakMap.set(key1, "value1");
75-
weakMap.set(key2, "value2")
72+
weakMap.set(key2, "value2");
7673

7774
weakMap.delete(key1);
7875

7976
weakMap.set(key2, "newValue2");
8077
console.log(weakMap);
8178

82-
console.log('---------------------OBJETO------------------------');
79+
console.log("---------------------OBJETO------------------------");
8380
const persona = {
84-
nombre: 'Caterina',
85-
edad: 24,
86-
genero: 'f'
87-
}
81+
nombre: "Caterina",
82+
edad: 24,
83+
genero: "f",
84+
};
8885

8986
persona.edad = 25;
9087
console.log(persona);
@@ -95,15 +92,15 @@ console.log(persona);
9592
const sortedKeys = Object.keys(persona).sort();
9693

9794
let sortedObj = {};
98-
sortedKeys.map(key =>
99-
sortedObj[key] = persona[key]
100-
)
101-
console.log('objeto ordenado', sortedObj);
102-
103-
console.log('---------------------MAP------------------------');let map = new Map([
104-
["nombre", "Caterina"],
105-
["edad", 22],
106-
["genero", "f"]
95+
sortedKeys.map((key) => (sortedObj[key] = persona[key]));
96+
console.log("objeto ordenado", sortedObj);
97+
98+
console.log("---------------------MAP------------------------");
99+
100+
let map = new Map([
101+
["nombre", "Caterina"],
102+
["edad", 22],
103+
["genero", "f"],
107104
]);
108105

109106
map.set("casa", "Mallorca");
@@ -115,27 +112,26 @@ let sortedMapArray = [...map.entries()].sort();
115112
let sortedMap = new Map(sortedMapArray);
116113
console.log(sortedMap);
117114

118-
console.log('--------------------EJERCICIO EXTRA------------------');
119-
115+
console.log("--------------------EJERCICIO EXTRA------------------");
120116

121117
/* DIFICULTAD EXTRA (opcional):
122-
* Crea una agenda de contactos por terminal.
123-
* - Debes implementar funcionalidades de búsqueda, inserción, actualización
124-
* y eliminación de contactos.
125-
* - Cada contacto debe tener un nombre y un número de teléfono.
126-
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar,
127-
* y a continuación los datos necesarios para llevarla a cabo.
128-
* - El programa no puede dejar introducir números de teléfono no númericos y con más
129-
* de 11 dígitos (o el número de dígitos que quieras).
130-
* - También se debe proponer una operación de finalización del programa.
131-
*/
132-
const readline = require('readline');
118+
* Crea una agenda de contactos por terminal.
119+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización
120+
* y eliminación de contactos.
121+
* - Cada contacto debe tener un nombre y un número de teléfono.
122+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar,
123+
* y a continuación los datos necesarios para llevarla a cabo.
124+
* - El programa no puede dejar introducir números de teléfono no númericos y con más
125+
* de 11 dígitos (o el número de dígitos que quieras).
126+
* - También se debe proponer una operación de finalización del programa.
127+
*/
128+
const readline = require("readline");
133129
const rl = readline.createInterface(process.stdin, process.stdout);
134130

135131
let contacts = [];
136132

137133
const menu = () => {
138-
console.log(`
134+
console.log(`
139135
------------------
140136
1. Añadir contacto
141137
2. Borrar contacto
@@ -144,64 +140,66 @@ const menu = () => {
144140
-----------------
145141
146142
`);
147-
rl.question('Elije mortal :) -> ', chooseOption)
143+
rl.question("Elije mortal :) -> ", chooseOption);
148144
};
149145

150146
const chooseOption = (option) => {
151-
switch(option) {
152-
case '1':
153-
addContact();
154-
break;
155-
case '2':
156-
deleteContact();
157-
break;
158-
case '3':
159-
console.log('testim Grace, princeseta');
160-
case '4':
161-
listContacts();
162-
break;
163-
default:
164-
menu();
165-
}
166-
}
147+
switch (option) {
148+
case "1":
149+
addContact();
150+
break;
151+
case "2":
152+
deleteContact();
153+
break;
154+
case "3":
155+
console.log("testim Grace, princeseta");
156+
case "4":
157+
listContacts();
158+
break;
159+
default:
160+
menu();
161+
}
162+
};
167163

168164
const addContact = () => {
169-
rl.question('Nombre pls -> ', (name) => addContactTelephone(name))
170-
}
171-
172-
const addContactTelephone = (name) => {
173-
rl.question('Teléfono porfa pls -> ', (tlf) => {
174-
if (tlf.length > 11) {
175-
console.log('El teléfono no puede ser mayor a 11 dígitos');
176-
addContactTelephone();
177-
}else if (!(/^\d{1,11}$/.test(tlf))) {
178-
console.log('El teléfono solo puede incluir dígitos numéricos');
179-
addContact();
180-
} else {
181-
contacts.push({nombre: name, telefono: tlf})
182-
console.log('siuuuu, contacto añadido');
183-
listContacts();
184-
}
185-
})
186-
}
165+
rl.question("Nombre pls -> ", (name) => addContactTelephone(name));
166+
};
167+
168+
const addContactTelephone = (name) => {
169+
rl.question("Teléfono porfa pls -> ", (tlf) => {
170+
if (tlf.length > 11) {
171+
console.log("El teléfono no puede ser mayor a 11 dígitos");
172+
addContactTelephone();
173+
} else if (!/^\d{1,11}$/.test(tlf)) {
174+
console.log("El teléfono solo puede incluir dígitos numéricos");
175+
addContact();
176+
} else {
177+
contacts.push({ nombre: name, telefono: tlf });
178+
console.log("siuuuu, contacto añadido");
179+
listContacts();
180+
}
181+
});
182+
};
187183

188184
const listContacts = () => {
189-
console.log(' ');
190-
console.log('------------------');
191-
console.log(' ');
192-
console.log('TUS CONTACTOS, REINA:');
193-
console.log(' ');
194-
contacts.map(contact => console.log(`Nombre: ${contact.nombre} - Teléfono: ${contact.telefono}`))
195-
menu();
196-
}
185+
console.log(" ");
186+
console.log("------------------");
187+
console.log(" ");
188+
console.log("TUS CONTACTOS, REINA:");
189+
console.log(" ");
190+
contacts.map((contact) =>
191+
console.log(`Nombre: ${contact.nombre} - Teléfono: ${contact.telefono}`)
192+
);
193+
menu();
194+
};
197195

198196
const deleteContact = () => {
199-
rl.question('A quien hacemos la cruz? -> ', (contact) => {
200-
contacts = contacts.filter(contact => contact.nombre === contact);
201-
console.log('eliminao >:)');
202-
menu();
203-
} );
204-
menu()
205-
}
206-
207-
menu();
197+
rl.question("A quien hacemos la cruz? -> ", (contact) => {
198+
contacts = contacts.filter((contact) => contact.nombre === contact);
199+
console.log("eliminao >:)");
200+
menu();
201+
});
202+
menu();
203+
};
204+
205+
menu();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
* EJERCICIO:
3+
* Utilizando tu lenguaje crea un conjunto de datos y realiza las siguientes
4+
* operaciones (debes utilizar una estructura que las soporte):
5+
* - Añade un elemento al final.
6+
* - Añade un elemento al principio.
7+
* - Añade varios elementos en bloque al final.
8+
* - Añade varios elementos en bloque en una posición concreta.
9+
* - Elimina un elemento en una posición concreta.
10+
* - Actualiza el valor de un elemento en una posición concreta.
11+
* - Comprueba si un elemento está en un conjunto.
12+
* - Elimina todo el contenido del conjunto.
13+
*
14+
* DIFICULTAD EXTRA (opcional):
15+
* Muestra ejemplos de las siguientes operaciones con conjuntos:
16+
* - Unión.
17+
* - Intersección.
18+
* - Diferencia.
19+
* - Diferencia simétrica.
20+
*/
21+
22+
let arr = [1, 2, 3];
23+
console.log("Conjunto de datos original", arr);
24+
arr.push(4);
25+
console.log("Añadir un elemento al final -> push(4)", arr);
26+
27+
arr.unshift(0);
28+
console.log("Añadir un elemento al principio", arr);
29+
30+
arr.push(5, 6, 7);
31+
console.log("Añadir varios elementos en bloque al final", arr);
32+
33+
arr.splice(3, 0, 2.5, 2.7);
34+
console.log(
35+
"Añadir varios elementos en una posición concreta. Posición 3",
36+
arr
37+
);
38+
39+
arr.splice(2, 1);
40+
console.log("Eliminar un elemento de una posición concreta. Posición 2", arr);
41+
42+
console.log(
43+
arr.includes(2) ? "El 2 está en el conjunto" : "El 2 no está en el conjunto"
44+
);
45+
console.log(
46+
arr.includes(3) ? "El 3 está en el conjunto" : "El 3 no está en el conjunto"
47+
);
48+
49+
arr.splice(0, arr.length);
50+
console.log("Eliminar los datos del conjunto", arr);
51+
52+
console.log("------------------DIFICULTAD EXTRA-----------------");
53+
54+
let arr1 = [0, 1, 2];
55+
let arr2 = [3, 4, 5];
56+
let arr3 = [1, 3, 7];
57+
58+
console.log("UNIÓN");
59+
console.log(
60+
`La unión de ${arr1} y ${arr2} es ${arr1.toSpliced(arr1.length, 0, arr2)}`
61+
);
62+
63+
console.log("INTERSECCIÓN");
64+
let interseccion = arr1.filter((el) => arr3.includes(el));
65+
console.log(`La intersección de ${arr1} y ${arr3} es ${interseccion}`);
66+
67+
console.log("DIFERENCIA");
68+
console.log(
69+
`La diferencia de arr1: ${arr1} respecto a arr3: ${arr3} es ${arr1.filter(
70+
(el) => !arr3.includes(el)
71+
)}`
72+
);
73+
74+
console.log("DIFERENCIA SIMÉTRICA");
75+
console.log(
76+
`La diferencia simétrica entre arr1 y arr3 es ${[
77+
arr1.filter((el) => !arr3.includes(el)),
78+
arr3.filter((el) => !arr1.includes(el)),
79+
]}`
80+
);

0 commit comments

Comments
 (0)