-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7334 from EloyParga/main
#2 - JavaScript
- Loading branch information
Showing
2 changed files
with
283 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
// FUNCIONES BÁSICAS EN JAVASCRIPT | ||
|
||
// 1. Funcion sin parametros ni retorno | ||
function saludoSimple(){ | ||
console.log("Hola, JS"); | ||
} | ||
|
||
|
||
// 2. Función con un parametro | ||
function saludarNombre(nombre) { | ||
console.log(`Hola ${nombre}, buenos días`); | ||
} | ||
|
||
|
||
// 3. Función con varios parametros | ||
function sumar (a , b){ | ||
console.log(`La suma de ${a} + ${b} = ${a+b}`); | ||
} | ||
|
||
|
||
/** 4. Función con @return */ | ||
function restar (a , b){ | ||
return a-b; | ||
} | ||
let resultado = restar(10,5); | ||
console.log(`El resultado de 10 - 5 = ${resultado}`); | ||
|
||
|
||
// 5. Función dentro de otra función | ||
function calculadora(a , b){ | ||
function multiplicar (x , y) { | ||
return x * y; | ||
} | ||
const suma = a+b; | ||
const multiplicacion = multiplicar(a, b); // llamada a la subfuncion | ||
console.log(`Suma : ${suma} , Multiplicación : ${multiplicacion}`); | ||
} | ||
calculadora(10,5); | ||
|
||
|
||
// 6. Funciones prefinidas | ||
let numeros = [1,2,3,4,5,]; | ||
console.log("Lista de numeros: ", numeros); | ||
let numerosCuadrados =numeros.map((n) => n**2); | ||
console.log("Numeros Cuadradosa ", numerosCuadrados); | ||
|
||
|
||
//VARIABLES LOCALES Y GLOBALES | ||
let variableGlobal = "Soy una variable global"; | ||
|
||
function alcance(){ | ||
let variableLocal = "Soy una variable Local"; | ||
console.log("VARIABLE: ", variableLocal); | ||
console.log("VARIABLE: ", variableGlobal); | ||
} | ||
alcance(); | ||
/** Esto da error : Porque @param variableLocal | ||
* no existe fuera del @method alcance() | ||
*/ | ||
// console.log(variableLocal); | ||
|
||
|
||
// DIFICULTAD EXTRA : FUNCION MULTIPLOS | ||
|
||
function fizzBuzz(fizz , buzz) { | ||
let cont = 0; // Contador que evalua cuantas veces se imprime números en vez de texto | ||
|
||
for (let i = 1; i<=100 ; i++){ | ||
if (i % 3 === 0 && i % 5 === 0) { | ||
console.log(fizz,buzz); //Multiplo 3 y 5 | ||
}else if(i % 3 === 0){ | ||
console.log(fizz,) //Multiplo 3 | ||
}else if (i % 5 === 0) { | ||
console.log(buzz); //Multiplo 5 | ||
}else{ | ||
console.log(i); //No multiplo | ||
cont++; // Incrementa el contador | ||
} | ||
} | ||
|
||
return cont; //Retorna el total de numeros impresos | ||
} | ||
|
||
const impresos = fizzBuzz("Fizz", "Buzz"); | ||
console.log(`Total de numeros impresos en lugar de Texto ${impresos}`); |
198 changes: 198 additions & 0 deletions
198
Roadmap/03 - ESTRUCTURAS DE DATOS/javascript/EloyParga.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,198 @@ | ||
// 1. Arrays | ||
let arrayDatosSub = ["Spira", "Drazz", "Espaby", "Kainyan77"]; | ||
console.log("Array Inicial: ",arrayDatosSub); | ||
|
||
//Insercción | ||
arrayDatosSub.push("EloyParga"); //Añade un elemento al final | ||
console.log("Despues de la insercción" , arrayDatosSub); | ||
|
||
//Boorar | ||
arrayDatosSub.slice(0,1); | ||
console.log("Despues de Borrar", arrayDatosSub ); | ||
|
||
//Actualización | ||
arrayDatosSub[2] = "ESPABY"; | ||
console.log("Despues de Actualizar ", arrayDatosSub) | ||
|
||
//Ordenación | ||
/** | ||
* @method sort() | ||
* por defecto ordena lexicograficamente | ||
* por @param podemos pasarle de forma OPCIONAL | ||
* una regla que defina el orden de los elementos | ||
*/ | ||
arrayDatosSub.sort((a, b) => a.length - b.length); // Odena de menor a mayor longitud de palabra | ||
console.log("Despues de ordenar " , arrayDatosSub) | ||
|
||
|
||
//2. Objetos | ||
let listaTrabajadores = { | ||
trabajador1: "Manolo", | ||
trabajador2: "Jony" | ||
} | ||
console.log("Objeto Inicial ", listaTrabajadores); | ||
|
||
//Insercción | ||
listaTrabajadores.trabajador3 = "Pepe"; | ||
console.log ("Despues de insertar ", listaTrabajadores) | ||
|
||
//Borrar | ||
delete listaTrabajadores.trabajador1 | ||
console.log("Despues de borrar ", listaTrabajadores); | ||
|
||
//Actualizar | ||
listaTrabajadores.trabajador2 = "Jonathan"; | ||
console.log("Despues de actualizar ", listaTrabajadores); | ||
|
||
|
||
// 3.Mapas | ||
let mapa = new Map(); | ||
mapa.set("a", 1); | ||
mapa.set("b", 2); | ||
console.log("Mapa Inicial: ", mapa); | ||
|
||
// Inserción | ||
mapa.set("c", 3); | ||
console.log("Despues de la Inserción: ", mapa); | ||
|
||
// Borrar | ||
mapa.delete("b"); | ||
console.log("Despues de Borrar: ", mapa); | ||
|
||
// Actualizar | ||
mapa.set("c", 10); | ||
console.log("Despues de Actualizar: ", mapa); | ||
|
||
|
||
|
||
//DIFICULTAD EXTRA: AGENDA DE CONTACTOS | ||
const readline = require("readline"); | ||
|
||
const agenda = new Map(); | ||
|
||
const rl = readline.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout, | ||
}); | ||
|
||
//validar que el numero sea válido | ||
function validacionNum(numero){ | ||
return /^[0-9]{1,11}$/.test(numero) | ||
} | ||
|
||
//Funciones para las operaciones de la agenda | ||
function insertarContacto(nombre, numero) { | ||
if(!validacionNum(numero)){ | ||
console.log("Numero de telefono no valido, debe contener solo numeros y maximo 11 digitos"); | ||
return; | ||
} | ||
agenda.set(nombre, numero); | ||
console.log("Contacto añadido"); | ||
} | ||
|
||
function buscarContacto(nombre) { | ||
if(agenda.has(nombre)) { | ||
console.log(`Contacto encontrado: ${nombre} - ${agenda.get(nombre)}`); | ||
}else{ | ||
console.log("Contacto no encontrado"); | ||
} | ||
} | ||
|
||
function actualizarContacto(nombre, Newnumero){ | ||
if(!agenda.has(nombre)){ | ||
console.log("El contacto no existe"); | ||
} | ||
|
||
if(!validacionNum(Newnumero)){ | ||
console.log("Numero de telefono no valido, debe contener solo numeros y maximo 11 digitos"); | ||
return; | ||
} | ||
|
||
agenda.set({nombre, Newnumero}); | ||
console.log("Contacto actualizado"); | ||
} | ||
|
||
function eliminarContacto(nombre,){ | ||
if(agenda.delete(nombre)){ | ||
console.log("Contacto Eliminado"); | ||
}else{ | ||
console.log("El contacto no existe"); | ||
} | ||
} | ||
|
||
function mostrarAgenda(){ | ||
if(agenda.size === 0){ | ||
console.log("La agenda esta vacia"); | ||
}else{ | ||
console.log("==CONTACTO DE LA AGENDA=="); | ||
agenda.forEach((nombre, numero) => { | ||
console.log(`- ${nombre}: ${numero}`); | ||
}) | ||
} | ||
} | ||
|
||
|
||
//MENU AGENDA | ||
|
||
function menu(){ | ||
console.log("\n=== AGENDA CONTACTOS ==="); | ||
console.log("1. Insertar Contacto"); | ||
console.log("2. Buscar Contacto"); | ||
console.log("3. Actualizar Contacto"); | ||
console.log("4. Eliminar Contacto"); | ||
console.log("5. Mostrar todos los contacto"); | ||
console.log("6. SALIR"); | ||
|
||
rl.question("Selecciona una opción: ", (opcion) => { | ||
switch(opcion){ | ||
case "1": | ||
rl.question("Introduce el nombre", (nombre)=> { | ||
rl.question("Introduce el numero de telefono", (numero)=> { | ||
insertarContacto(nombre, numero); | ||
menu(); | ||
}); | ||
}); | ||
break; | ||
|
||
case "2": | ||
rl.question("Introduce el nombre del contacto", (nombre) => { | ||
buscarContacto(nombre); | ||
menu(); | ||
}); | ||
break; | ||
|
||
case "3": | ||
rl.question("Introduce el nombre", (nombre)=> { | ||
rl.question("Introduce el nuevo numero de telefono", (numero)=> { | ||
actualizarContacto(nombre, numero); | ||
menu(); | ||
}); | ||
}); | ||
break; | ||
|
||
case "4": | ||
rl.question("Introduce el nombre del contacto que desea eliminar", (nombre) => { | ||
eliminarContacto(nombre); | ||
menu(); | ||
}); | ||
break; | ||
|
||
case "5": | ||
mostrarAgenda(); | ||
menu(); | ||
break; | ||
|
||
case "6": | ||
console.log("Ha salido de la agenda. ¡ADIOS!"); | ||
rl.close(); | ||
break; | ||
|
||
default: | ||
console.log("Opcion no valida"); | ||
menu(); | ||
} | ||
}); | ||
} | ||
|
||
//Inicializar el menu | ||
menu(); |