1
+ // 1. Arrays
2
+ let arrayDatosSub = [ "Spira" , "Drazz" , "Espaby" , "Kainyan77" ] ;
3
+ console . log ( "Array Inicial: " , arrayDatosSub ) ;
4
+
5
+ //Insercción
6
+ arrayDatosSub . push ( "EloyParga" ) ; //Añade un elemento al final
7
+ console . log ( "Despues de la insercción" , arrayDatosSub ) ;
8
+
9
+ //Boorar
10
+ arrayDatosSub . slice ( 0 , 1 ) ;
11
+ console . log ( "Despues de Borrar" , arrayDatosSub ) ;
12
+
13
+ //Actualización
14
+ arrayDatosSub [ 2 ] = "ESPABY" ;
15
+ console . log ( "Despues de Actualizar " , arrayDatosSub )
16
+
17
+ //Ordenación
18
+ /**
19
+ * @method sort()
20
+ * por defecto ordena lexicograficamente
21
+ * por @param podemos pasarle de forma OPCIONAL
22
+ * una regla que defina el orden de los elementos
23
+ */
24
+ arrayDatosSub . sort ( ( a , b ) => a . length - b . length ) ; // Odena de menor a mayor longitud de palabra
25
+ console . log ( "Despues de ordenar " , arrayDatosSub )
26
+
27
+
28
+ //2. Objetos
29
+ let listaTrabajadores = {
30
+ trabajador1 : "Manolo" ,
31
+ trabajador2 : "Jony"
32
+ }
33
+ console . log ( "Objeto Inicial " , listaTrabajadores ) ;
34
+
35
+ //Insercción
36
+ listaTrabajadores . trabajador3 = "Pepe" ;
37
+ console . log ( "Despues de insertar " , listaTrabajadores )
38
+
39
+ //Borrar
40
+ delete listaTrabajadores . trabajador1
41
+ console . log ( "Despues de borrar " , listaTrabajadores ) ;
42
+
43
+ //Actualizar
44
+ listaTrabajadores . trabajador2 = "Jonathan" ;
45
+ console . log ( "Despues de actualizar " , listaTrabajadores ) ;
46
+
47
+
48
+ // 3.Mapas
49
+ let mapa = new Map ( ) ;
50
+ mapa . set ( "a" , 1 ) ;
51
+ mapa . set ( "b" , 2 ) ;
52
+ console . log ( "Mapa Inicial: " , mapa ) ;
53
+
54
+ // Inserción
55
+ mapa . set ( "c" , 3 ) ;
56
+ console . log ( "Despues de la Inserción: " , mapa ) ;
57
+
58
+ // Borrar
59
+ mapa . delete ( "b" ) ;
60
+ console . log ( "Despues de Borrar: " , mapa ) ;
61
+
62
+ // Actualizar
63
+ mapa . set ( "c" , 10 ) ;
64
+ console . log ( "Despues de Actualizar: " , mapa ) ;
65
+
66
+
67
+
68
+ //DIFICULTAD EXTRA: AGENDA DE CONTACTOS
69
+ const readline = require ( "readline" ) ;
70
+
71
+ const agenda = new Map ( ) ;
72
+
73
+ const rl = readline . createInterface ( {
74
+ input : process . stdin ,
75
+ output : process . stdout ,
76
+ } ) ;
77
+
78
+ //validar que el numero sea válido
79
+ function validacionNum ( numero ) {
80
+ return / ^ [ 0 - 9 ] { 1 , 11 } $ / . test ( numero )
81
+ }
82
+
83
+ //Funciones para las operaciones de la agenda
84
+ function insertarContacto ( nombre , numero ) {
85
+ if ( ! validacionNum ( numero ) ) {
86
+ console . log ( "Numero de telefono no valido, debe contener solo numeros y maximo 11 digitos" ) ;
87
+ return ;
88
+ }
89
+ agenda . set ( nombre , numero ) ;
90
+ console . log ( "Contacto añadido" ) ;
91
+ }
92
+
93
+ function buscarContacto ( nombre ) {
94
+ if ( agenda . has ( nombre ) ) {
95
+ console . log ( `Contacto encontrado: ${ nombre } - ${ agenda . get ( nombre ) } ` ) ;
96
+ } else {
97
+ console . log ( "Contacto no encontrado" ) ;
98
+ }
99
+ }
100
+
101
+ function actualizarContacto ( nombre , Newnumero ) {
102
+ if ( ! agenda . has ( nombre ) ) {
103
+ console . log ( "El contacto no existe" ) ;
104
+ }
105
+
106
+ if ( ! validacionNum ( Newnumero ) ) {
107
+ console . log ( "Numero de telefono no valido, debe contener solo numeros y maximo 11 digitos" ) ;
108
+ return ;
109
+ }
110
+
111
+ agenda . set ( { nombre, Newnumero} ) ;
112
+ console . log ( "Contacto actualizado" ) ;
113
+ }
114
+
115
+ function eliminarContacto ( nombre , ) {
116
+ if ( agenda . delete ( nombre ) ) {
117
+ console . log ( "Contacto Eliminado" ) ;
118
+ } else {
119
+ console . log ( "El contacto no existe" ) ;
120
+ }
121
+ }
122
+
123
+ function mostrarAgenda ( ) {
124
+ if ( agenda . size === 0 ) {
125
+ console . log ( "La agenda esta vacia" ) ;
126
+ } else {
127
+ console . log ( "==CONTACTO DE LA AGENDA==" ) ;
128
+ agenda . forEach ( ( nombre , numero ) => {
129
+ console . log ( `- ${ nombre } : ${ numero } ` ) ;
130
+ } )
131
+ }
132
+ }
133
+
134
+
135
+ //MENU AGENDA
136
+
137
+ function menu ( ) {
138
+ console . log ( "\n=== AGENDA CONTACTOS ===" ) ;
139
+ console . log ( "1. Insertar Contacto" ) ;
140
+ console . log ( "2. Buscar Contacto" ) ;
141
+ console . log ( "3. Actualizar Contacto" ) ;
142
+ console . log ( "4. Eliminar Contacto" ) ;
143
+ console . log ( "5. Mostrar todos los contacto" ) ;
144
+ console . log ( "6. SALIR" ) ;
145
+
146
+ rl . question ( "Selecciona una opción: " , ( opcion ) => {
147
+ switch ( opcion ) {
148
+ case "1" :
149
+ rl . question ( "Introduce el nombre" , ( nombre ) => {
150
+ rl . question ( "Introduce el numero de telefono" , ( numero ) => {
151
+ insertarContacto ( nombre , numero ) ;
152
+ menu ( ) ;
153
+ } ) ;
154
+ } ) ;
155
+ break ;
156
+
157
+ case "2" :
158
+ rl . question ( "Introduce el nombre del contacto" , ( nombre ) => {
159
+ buscarContacto ( nombre ) ;
160
+ menu ( ) ;
161
+ } ) ;
162
+ break ;
163
+
164
+ case "3" :
165
+ rl . question ( "Introduce el nombre" , ( nombre ) => {
166
+ rl . question ( "Introduce el nuevo numero de telefono" , ( numero ) => {
167
+ actualizarContacto ( nombre , numero ) ;
168
+ menu ( ) ;
169
+ } ) ;
170
+ } ) ;
171
+ break ;
172
+
173
+ case "4" :
174
+ rl . question ( "Introduce el nombre del contacto que desea eliminar" , ( nombre ) => {
175
+ eliminarContacto ( nombre ) ;
176
+ menu ( ) ;
177
+ } ) ;
178
+ break ;
179
+
180
+ case "5" :
181
+ mostrarAgenda ( ) ;
182
+ menu ( ) ;
183
+ break ;
184
+
185
+ case "6" :
186
+ console . log ( "Ha salido de la agenda. ¡ADIOS!" ) ;
187
+ rl . close ( ) ;
188
+ break ;
189
+
190
+ default :
191
+ console . log ( "Opcion no valida" ) ;
192
+ menu ( ) ;
193
+ }
194
+ } ) ;
195
+ }
196
+
197
+ //Inicializar el menu
198
+ menu ( ) ;
0 commit comments