Skip to content

Commit 2e21e9a

Browse files
committed
#3 - JavaScript
Hay algunos errores que se pueden mejorar a mayores pero la funcionalidad principal del ejercicio esta desarrollada al completo.
1 parent 7f609ec commit 2e21e9a

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
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

Comments
 (0)