Skip to content

Commit a4c8cb3

Browse files
committed
#3 - javascript
1 parent f728a5a commit a4c8cb3

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/*
2+
* EJERCICIO:
3+
* - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
4+
* - Utiliza operaciones de inserción, borrado, actualización y ordenación.
5+
*
6+
* DIFICULTAD EXTRA (opcional):
7+
* Crea una agenda de contactos por terminal.
8+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
9+
* - Cada contacto debe tener un nombre y un número de teléfono.
10+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
11+
* los datos necesarios para llevarla a cabo.
12+
* - El programa no puede dejar introducir números de teléfono no númericos y con más de 11 dígitos.
13+
* (o el número de dígitos que quieras)
14+
* - También se debe proponer una operación de finalización del programa.
15+
*/
16+
17+
// Arrays
18+
let array = [3, 1, 4, 1, 5, 9];
19+
array.push(2); // Inserción
20+
array.splice(1, 1); // Borrado
21+
array[0] = 8; // Actualización
22+
array.sort(); // Ordenación
23+
console.log("Array:", array);
24+
25+
// Objetos
26+
let objeto = { nombre: "Juan", edad: 30 };
27+
objeto.apellido = "Pérez"; // Inserción
28+
delete objeto.edad; // Borrado
29+
objeto.nombre = "Carlos"; // Actualización
30+
console.log("Objeto:", objeto);
31+
32+
// Conjuntos (Set)
33+
let conjunto = new Set([1, 2, 3, 4]);
34+
conjunto.add(5); // Inserción
35+
conjunto.delete(2); // Borrado
36+
console.log("Conjunto:", conjunto);
37+
38+
// Mapas (Map)
39+
let mapa = new Map();
40+
mapa.set("clave1", "valor1"); // Inserción
41+
mapa.delete("clave1"); // Borrado
42+
mapa.set("clave2", "valor2 actualizado"); // Actualización
43+
console.log("Mapa:", mapa);
44+
45+
// DIFICULTAD EXTRA: Agenda de Contactos
46+
class Agenda {
47+
constructor() {
48+
this.contactos = new Map();
49+
}
50+
51+
agregarContacto(nombre, telefono) {
52+
if (!/^[0-9]{1,11}$/.test(telefono)) {
53+
console.log("Número de teléfono no válido.");
54+
return;
55+
}
56+
this.contactos.set(nombre, telefono);
57+
console.log(`Contacto agregado: ${nombre} - ${telefono}`);
58+
}
59+
60+
actualizarContacto(nombre, nuevoTelefono) {
61+
if (this.contactos.has(nombre)) {
62+
this.contactos.set(nombre, nuevoTelefono);
63+
console.log(`Contacto actualizado: ${nombre} - ${nuevoTelefono}`);
64+
} else {
65+
console.log("Contacto no encontrado.");
66+
}
67+
}
68+
69+
eliminarContacto(nombre) {
70+
if (this.contactos.delete(nombre)) {
71+
console.log(`Contacto eliminado: ${nombre}`);
72+
} else {
73+
console.log("Contacto no encontrado.");
74+
}
75+
}
76+
77+
buscarContacto(nombre) {
78+
if (this.contactos.has(nombre)) {
79+
console.log(`Contacto encontrado: ${nombre} - ${this.contactos.get(nombre)}`);
80+
} else {
81+
console.log("Contacto no encontrado.");
82+
}
83+
}
84+
85+
mostrarAgenda() {
86+
console.log("Agenda de Contactos:");
87+
this.contactos.forEach((telefono, nombre) => {
88+
console.log(`${nombre}: ${telefono}`);
89+
});
90+
}
91+
}
92+
93+
const agenda = new Agenda();
94+
agenda.agregarContacto("Juan", "123456789");
95+
agenda.agregarContacto("María", "987654321");
96+
agenda.actualizarContacto("Juan", "111222333");
97+
agenda.buscarContacto("María");
98+
agenda.eliminarContacto("Juan");
99+
agenda.mostrarAgenda();

0 commit comments

Comments
 (0)