Skip to content

Commit 3783b5b

Browse files
authored
Merge pull request mouredev#4476 from RaulDoezon/03-JavaScript-RaulDoezon
#3 - JavaScript
2 parents 2488f4b + 0a0ddd7 commit 3783b5b

File tree

1 file changed

+139
-0
lines changed

1 file changed

+139
-0
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
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+
// +++++++++ ARRAY +++++++++
18+
var colores = ["Blanco", "Azul", "Naranja"];
19+
20+
colores.push("Verde"); // Añade un elemento al final.
21+
colores.splice(2, 1); // Elimina el elemento en el índice 2.
22+
colores[2] = "Rojo"; // Actualiza el elemento en el índice 2.
23+
colores.sort(); // Ordena los elementos alfabéticamente.
24+
console.log(colores);
25+
26+
// +++++++++ OBJECT +++++++++
27+
var bountyHunter = {
28+
name: "-",
29+
height: "1.9m",
30+
specie: "Human",
31+
}
32+
33+
bountyHunter.lastName = "Aran"; // Añade un nuevo elemento.
34+
delete bountyHunter.specie; // Elimina una propiedad.
35+
bountyHunter.name = "Samus"; // Modifica el valor de una propiedad existente.
36+
Object.keys(bountyHunter).sort(); // Ordena las propiedad alfabéticamente, pero convierte el objeto en un arreglo.
37+
console.log(bountyHunter);
38+
39+
// +++++++++ DIFICULTAD EXTRA +++++++++
40+
var menu = "Por favor, ingrese el número de la opción que desea ejecutar:\n1) Agregar.\n2) Actualizar.\n3) Eliminar.\n4) Buscar.\n5) Salir."
41+
var selectedOption = 0;
42+
var directory = [];
43+
44+
function addContact() {
45+
var name = prompt("Por favor, ingrese el nombre del contacto:");
46+
var newContact = {Nombre: name};
47+
var stringPhone = prompt("Por favor, ingrese el teléfono del contacto con 10 dígitos:");
48+
var phoneNumber = parseInt(stringPhone, 10);
49+
50+
if (/^[0-9.,]+$/.test(phoneNumber) && stringPhone.length === 10) {
51+
newContact.Telefono = phoneNumber;
52+
directory.push(newContact);
53+
} else {
54+
alert("Debe ingresar un número de teléfono conformado por 10 dígitos.");
55+
}
56+
}
57+
58+
function updateContact() {
59+
var name = prompt("Por favor, ingrese el nombre del contacto a actualizar:");
60+
61+
function searchContact(contact) {
62+
return contact.Nombre === name;
63+
}
64+
65+
var results = directory.find(searchContact);
66+
var newName = prompt("Por favor, ingrese el nombre nuevo:");
67+
68+
var stringnewPhone = prompt("Por favor, ingrese el teléfono nuevo con 10 dígitos:");
69+
var newPhoneNumber = parseInt(stringnewPhone, 10);
70+
71+
if (/^[0-9.,]+$/.test(newPhoneNumber) && stringnewPhone.length === 10) {
72+
results.Nombre = newName;
73+
results.Telefono = newPhoneNumber;
74+
} else {
75+
alert("Debe ingresar un número de teléfono conformado por 10 dígitos.");
76+
}
77+
}
78+
79+
function deleteContact() {
80+
var name = prompt("Por favor, ingrese el nombre del contacto que desea eliminar:");
81+
82+
function searchContact(contact) {
83+
return contact.Nombre === name;
84+
}
85+
86+
var results = directory.findIndex(searchContact);
87+
88+
if (results >= 0) {
89+
directory.splice(results, 1);
90+
} else {
91+
alert("El contacto no pudo ser eliminado porque no existe.");
92+
}
93+
}
94+
95+
function searchContact() {
96+
var name = prompt("Por favor, ingrese el nombre del contacto que desea buscar:");
97+
98+
function searchContact(contact) {
99+
return contact.Nombre === name;
100+
}
101+
102+
var results = directory.find(searchContact);
103+
104+
if (results === undefined) {
105+
alert("El contacto no existe.");
106+
} else {
107+
alert("Nombre: " + results.Nombre + "\n" + "Teléfono: " + results.Telefono);
108+
}
109+
}
110+
111+
do {
112+
selectedOption = parseInt(prompt(menu), 10);
113+
114+
switch (selectedOption) {
115+
case 1:
116+
addContact();
117+
break;
118+
119+
case 2:
120+
updateContact();
121+
break;
122+
123+
case 3:
124+
deleteContact();
125+
break;
126+
127+
case 4:
128+
searchContact();
129+
break;
130+
131+
case 5:
132+
alert("Cerrando la agenda.");
133+
break;
134+
135+
default:
136+
alert("Por favor, introduzca una opción del 1 al 5.");
137+
break;
138+
}
139+
} while (selectedOption !== 5);

0 commit comments

Comments
 (0)