Skip to content

Commit 4358631

Browse files
authored
Merge pull request mouredev#7334 from EloyParga/main
#2 - JavaScript
2 parents 0edbdf6 + 2e21e9a commit 4358631

File tree

2 files changed

+283
-0
lines changed

2 files changed

+283
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
// FUNCIONES BÁSICAS EN JAVASCRIPT
2+
3+
// 1. Funcion sin parametros ni retorno
4+
function saludoSimple(){
5+
console.log("Hola, JS");
6+
}
7+
8+
9+
// 2. Función con un parametro
10+
function saludarNombre(nombre) {
11+
console.log(`Hola ${nombre}, buenos días`);
12+
}
13+
14+
15+
// 3. Función con varios parametros
16+
function sumar (a , b){
17+
console.log(`La suma de ${a} + ${b} = ${a+b}`);
18+
}
19+
20+
21+
/** 4. Función con @return */
22+
function restar (a , b){
23+
return a-b;
24+
}
25+
let resultado = restar(10,5);
26+
console.log(`El resultado de 10 - 5 = ${resultado}`);
27+
28+
29+
// 5. Función dentro de otra función
30+
function calculadora(a , b){
31+
function multiplicar (x , y) {
32+
return x * y;
33+
}
34+
const suma = a+b;
35+
const multiplicacion = multiplicar(a, b); // llamada a la subfuncion
36+
console.log(`Suma : ${suma} , Multiplicación : ${multiplicacion}`);
37+
}
38+
calculadora(10,5);
39+
40+
41+
// 6. Funciones prefinidas
42+
let numeros = [1,2,3,4,5,];
43+
console.log("Lista de numeros: ", numeros);
44+
let numerosCuadrados =numeros.map((n) => n**2);
45+
console.log("Numeros Cuadradosa ", numerosCuadrados);
46+
47+
48+
//VARIABLES LOCALES Y GLOBALES
49+
let variableGlobal = "Soy una variable global";
50+
51+
function alcance(){
52+
let variableLocal = "Soy una variable Local";
53+
console.log("VARIABLE: ", variableLocal);
54+
console.log("VARIABLE: ", variableGlobal);
55+
}
56+
alcance();
57+
/** Esto da error : Porque @param variableLocal
58+
* no existe fuera del @method alcance()
59+
*/
60+
// console.log(variableLocal);
61+
62+
63+
// DIFICULTAD EXTRA : FUNCION MULTIPLOS
64+
65+
function fizzBuzz(fizz , buzz) {
66+
let cont = 0; // Contador que evalua cuantas veces se imprime números en vez de texto
67+
68+
for (let i = 1; i<=100 ; i++){
69+
if (i % 3 === 0 && i % 5 === 0) {
70+
console.log(fizz,buzz); //Multiplo 3 y 5
71+
}else if(i % 3 === 0){
72+
console.log(fizz,) //Multiplo 3
73+
}else if (i % 5 === 0) {
74+
console.log(buzz); //Multiplo 5
75+
}else{
76+
console.log(i); //No multiplo
77+
cont++; // Incrementa el contador
78+
}
79+
}
80+
81+
return cont; //Retorna el total de numeros impresos
82+
}
83+
84+
const impresos = fizzBuzz("Fizz", "Buzz");
85+
console.log(`Total de numeros impresos en lugar de Texto ${impresos}`);
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)