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