diff --git a/Basic/03-beginner-exercises.js b/Basic/03-beginner-exercises.js index 2e7dd657..66edde18 100644 --- a/Basic/03-beginner-exercises.js +++ b/Basic/03-beginner-exercises.js @@ -5,20 +5,48 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=4733 // 1. Escribe un comentario en una línea +// hey + // 2. Escribe un comentario en varias líneas +/* +hey +*/ + // 3. Declara variables con valores asociados a todos los datos de tipo primitivos +let miString = "Esto es un texto"; // string +let miEntero = 7; // num entero +let miDecimal = 7.5; // num decimal +let miBooleano = true; // boolean decision +let undefinedValue; // valor indefinido +let valorNulo = null; // valor nulo +let simbolo = Symbol("👍") // simbolo +let myBigInt = BigInt(817239871289371986589716389471628379612983761289376129) // entero grande + // 4. Imprime por consola el valor de todas las variables +console.log(miString) +console.log(simbolo) + // 5. Imprime por consola el tipo de todas las variables +console.log(typeof miString) +console.log(typeof miBooleano) +console.log(typeof undefinedValue) + // 6. A continuación, modifica los valores de las variables por otros del mismo tipo +miString = "hola" +console.log(miString) // 7. A continuación, modifica los valores de las variables por otros de distinto tipo +miString = 10 +console.log(miString) // 8. Declara constantes con valores asociados a todos los tipos de datos primitivos +const CONSTANTE = 15 // 9. A continuación, modifica los valores de las constantes +// CONSTANTE = 14 -// 10. Comenta las líneas que produzcan algún tipo de error al ejecutarse \ No newline at end of file +// 10. Comenta las líneas que produzcan algún tipo de error al ejecutarse diff --git a/Basic/05-operators-exercises.js b/Basic/05-operators-exercises.js index a6265eac..03707831 100644 --- a/Basic/05-operators-exercises.js +++ b/Basic/05-operators-exercises.js @@ -4,22 +4,62 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=6458 */ // 1. Crea una variable para cada operación aritmética +let a = 5; +let b = 10; + +let suma = a + b; // Suma +let resta = a - b; // Resta +let multiplicacion = a * b; // Multiplicación +let division = a / b; // División +let modulo = a % b; // Módulo +let exponente = a ** b; // Exponente // 2. Crea una variable para cada tipo de operación de asignación, // que haga uso de las variables utilizadas para las operaciones aritméticas +console.log("Operaciones de asignación:"); +a += 2; // Suma con asignación +b -= 2; // Resta con asignación +console.log("a:", a, "b:", b); +a *= 2; // Multiplicación con asignación +b /= 2; // División con asignación +console.log("a:", a, "b:", b); +a %= 2; // Módulo con asignación +b **= 2; // Exponente con asignación +console.log("a:", a, "b:", b); // 3. Imprime 5 comparaciones verdaderas con diferentes operadores de comparación +console.log("Comparaciones verdaderas:"); +console.log(a < b); // Menor que +console.log(6 <= 6); // Menor o igual que +console.log(a == 0); // Igualdad por valor +console.log(b === 16); // Igualdad por identidad +console.log(a != 6); // Desigualdad por valor + // 4. Imprime 5 comparaciones falsas con diferentes operadores de comparación +console.log("Comparaciones falsas:"); +console.log(a > b); // Mayor que +console.log(a >= b); // Mayor o igual que +console.log(a == 10); // Igualdad por valor +console.log(a === "5"); // Igualdad por identidad +console.log(b !== 10); // Desigualdad por identidad // 5. Utiliza el operador lógico and +console.log(a > 0 && b < 20); // Verdadero si a es mayor que 0 y b es menor que 20 // 6. Utiliza el operador lógico or +console.log(a < 0 || b > 15); // Verdadero si a es menor que 0 o b es mayor que 15 // 7. Combina ambos operadores lógicos +console.log((a > 0 && b < 20) || (a < 10 && b > 5)); // Verdadero si a es mayor que 0 y b es menor que 20, o a es menor que 10 y b es mayor que 5 // 8. Añade alguna negación +console.log(!(a < b)); // Verdadero si a no es menor que b // 9. Utiliza el operador ternario +let resultado = (a > b) ? "a es mayor que b" : "a no es mayor que b"; +console.log(resultado); // Imprime el resultado del operador ternario -// 10. Combina operadores aritméticos, de comparáción y lógicas \ No newline at end of file +// 10. Combina operadores aritméticos, de comparáción y lógicas +let combinacion = (a + b > 15) && (a < b) ? "La suma es mayor que 15 y a es menor que b" : "No se cumple la condición"; +console.log(combinacion); // Imprime el resultado de la combinación de operadores \ No newline at end of file diff --git a/Basic/07-strings-exercises.js b/Basic/07-strings-exercises.js index c08f0166..f42f3b22 100644 --- a/Basic/07-strings-exercises.js +++ b/Basic/07-strings-exercises.js @@ -4,21 +4,41 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=7226 */ // 1. Concatena dos cadenas de texto +let myName = "Laura" +let greeting = "Hola! " + myName + ", bienvenidx :)" +console.log(greeting); // 2. Muestra la longitud de una cadena de texto +console.log(greeting.length); // 3. Muestra el primer y último carácter de un string +console.log(greeting[0]); +console.log(myName[4]) // 4. Convierte a mayúsculas y minúsculas un string +console.log(myName.toUpperCase) +console.log(myName.toLowerCase) // 5. Crea una cadena de texto en varias líneas +let cadena = `Hola, esto +es una cadena +en varias +lineas` +console.log(cadena); // 6. Interpola el valor de una variable en un string +console.log(greeting.replace("Hola", "Adiós")); // 7. Reemplaza todos los espacios en blanco de un string por guiones +console.log(greeting.replace(" ", "-")); // 8. Comprueba si una cadena de texto contiene una palabra concreta +console.log(greeting.indexOf("Hola")); // 9. Comprueba si dos strings son iguales +let nombre1 = "Ruben" +let nombre2 = "Laura" +nombre1 == nombre2 ? console.log("Son iguales") : console.log("no son iguales"); -// 10. Comprueba si dos strings tienen la misma longitud \ No newline at end of file +// 10. Comprueba si dos strings tienen la misma longitud +nombre1.length == nombre2.length ? console.log("Tienen la misma longitud") : console.log("No tienen la misma longitud"); \ No newline at end of file diff --git a/Basic/09-conditionals-exercises.js b/Basic/09-conditionals-exercises.js index 380e6542..61bbacb3 100644 --- a/Basic/09-conditionals-exercises.js +++ b/Basic/09-conditionals-exercises.js @@ -4,26 +4,130 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=8652 */ // if/else/else if/ternaria +let age = 20 + +if (age >= 18) { + console.log("Eres mayor de edad") +} else if (age < 18 && age > 0) { + console.log("Eres menor de edad") +} else { + console.log("Edad no válida") +} // 1. Imprime por consola tu nombre si una variable toma su valor +let myName = "Laura" + +if (myName === "Laura") { + console.log("Mi nombre es Laura") +} // 2. Imprime por consola un mensaje si el usuario y contraseña concide con unos establecidos +let username = "admin" +let password = "1234" +if (username === "admin" && password === "1234") { + console.log("Acceso concedido") +} else { + console.log("Acceso denegado") +} // 3. Verifica si un número es positivo, negativo o cero e imprime un mensaje +let num = -5 + +if (num > 0) { + console.log("El número es positivo") +} else if (num < 0) { + console.log("El número es negativo") +} +else { + console.log("El número es cero") +} // 4. Verifica si una persona puede votar o no (mayor o igual a 18) e indica cuántos años le faltan +let edadToVote = 17 + +if (edadToVote >= 18) { + console.log("Puede votar") +} else { + console.log(`No puede votar, le faltan ${18 - edadToVote} años`) +} // 5. Usa el operador ternario para asignar el valor "adulto" o "menor" a una variable -// dependiendo de la edad +// dependiendo de la edad +let edad = 16 + +edad >= 18 ? console.log("Adulto") : console.log("Menor") // 6. Muestra en que estación del año nos encontramos dependiendo del valor de una variable "mes" +let mes = 5 +let estacion -// 7. Muestra el número de días que tiene un mes dependiendo de la variable del ejercicio anterior +switch (mes) { + case 1: + case 2: + case 3: + estacion = "Invierno" + break + case 4: + case 5: + case 6: + estacion = "Primavera" + break + case 7: + case 8: + case 9: + estacion = "Verano" + break + case 10: + case 11: + case 12: + estacion = "Otoño" + break + default: + estacion = "Mes no válido" +} +// 7. Muestra el número de días que tiene un mes dependiendo de la variable del ejercicio anterior // switch +let diasEnMes +switch (mes) { + case 1: // Enero + case 3: // Marzo + case 5: // Mayo + case 7: // Julio + case 8: // Agosto + case 10: // Octubre + case 12: // Diciembre + diasEnMes = 31; + break; + case 4: // Abril + case 6: // Junio + case 9: // Septiembre + case 11: // Noviembre + diasEnMes = 30; + break; + case 2: // Febrero + diasEnMes = 28; // No considerando años bisiestos + break; + default: + diasEnMes = "Mes no válido"; +} // 8. Usa un switch para imprimir un mensaje de saludo diferente dependiendo del idioma - -// 9. Usa un switch para hacer de nuevo el ejercicio 6 - -// 10. Usa un switch para hacer de nuevo el ejercicio 7 \ No newline at end of file +let language = "es" +let greeting; +switch (language) { + case "es": + greeting = "Hola"; + break; + case "en": + greeting = "Hello"; + break; + case "fr": + greeting = "Bonjour"; + break; + case "de": + greeting = "Hallo"; + break; + default: + greeting = "Idioma no reconocido"; +} diff --git a/Basic/10-array.js b/Basic/10-array.js index b9028147..7d302d1c 100644 --- a/Basic/10-array.js +++ b/Basic/10-array.js @@ -21,8 +21,8 @@ myArray2 = new Array(3) console.log(myArray) console.log(myArray2) -myArray = [1, 2, 3, 4] -myArray2 = new Array(1, 2, 3, 4) +myArray = [1, 2, 3, 4] // se añaden los numeros +myArray2 = new Array(1, 2, 3, 4) // con esta sintaxis reserva el hueco console.log(myArray) console.log(myArray2) @@ -54,7 +54,7 @@ myArray = [] // push y pop -myArray.push("Brais") +myArray.push("Brais") // push añade elementos al final myArray.push("Moure") myArray.push("mouredev") myArray.push(37) @@ -68,10 +68,10 @@ console.log(myArray) // shift y unshift -console.log(myArray.shift()) +console.log(myArray.shift()) // elimina el primer elemento del array console.log(myArray) -myArray.unshift("Brais", "mouredev") +myArray.unshift("Brais", "mouredev") // unshift añade elementos al principio del array console.log(myArray) // length @@ -88,7 +88,8 @@ console.log(myArray) myArray = ["Brais", "Moure", "mouredev", 37, true] -let myNewArray = myArray.slice(1, 3) +let myNewArray = myArray.slice(1, 3) // coge la primera posi y no tiene en cuenta la última +// salida: posi 1 "Moure" y posi 2 "mouredev" console.log(myArray) console.log(myNewArray) diff --git a/Basic/13-structures-exercises.js b/Basic/13-structures-exercises.js index 1b094502..8974b28d 100644 --- a/Basic/13-structures-exercises.js +++ b/Basic/13-structures-exercises.js @@ -4,21 +4,64 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=11451 */ // 1. Crea un array que almacene cinco animales +let arrayAnimales = [] // declaración +arrayAnimales = [5] // inicialización + +arrayAnimales = ["Gato", "Perro", "Pato", "Rana", "Conejo"] +console.log(arrayAnimales); // 2. Añade dos más. Uno al principio y otro al final +arrayAnimales.unshift("Cocodrilo") +arrayAnimales.push("Jirafa") +console.log(arrayAnimales); // 3. Elimina el que se encuentra en tercera posición +arrayAnimales.splice(2, 1) // elimina 1 elemento en el índice 2 +console.log(arrayAnimales); // 4. Crea un set que almacene cinco libros +let mySet = new Set() // declaración +mySet = new Set(["Libro 1", "Libro 2", "Libro 3", "Libro 4", "Libro 5"]) // inicialización +console.log(mySet); // 5. Añade dos más. Uno de ellos repetido +mySet.add("Libro 6") +mySet.add("Libro 2") +console.log(mySet); // 6. Elimina uno concreto a tu elección +mySet.delete("Libro 3"); +console.log(mySet); // 7. Crea un mapa que asocie el número del mes a su nombre +let mesesMap = new Map([ + [1, "Enero"], + [2, "Febrero"], + [3, "Marzo"], + [4, "Abril"], + [5, "Mayo"], + [6, "Junio"], + [7, "Julio"], + [8, "Agosto"], + [9, "Septiembre"], + [10, "Octubre"], + [11, "Noviembre"], + [12, "Diciembre"] +]); +console.log(mesesMap); // 8. Comprueba si el mes número 5 existe en el map e imprime su valor +if (mesesMap.has(5)) { + console.log("Mes 5:", mesesMap.get(5)); +} else { + console.log("El mes 5 no existe."); +} // 9. Añade al mapa una clave con un array que almacene los meses de verano +mesesMap.set("verano", ["Junio", "Julio", "Agosto"]); +console.log(mesesMap.get("verano")); -// 10. Crea un Array, transfórmalo a un Set y almacénalo en un Map \ No newline at end of file +// 10. Crea un Array, transfórmalo a un Set y almacénalo en un Map +let frutasArray = ["Manzana", "Pera", "Plátano", "Manzana"]; +let frutasSet = new Set(frutasArray); +let frutasMap = new Map(); \ No newline at end of file diff --git a/Basic/15-loops-exercises.js b/Basic/15-loops-exercises.js index 2a27cdd0..4b49efa7 100644 --- a/Basic/15-loops-exercises.js +++ b/Basic/15-loops-exercises.js @@ -6,21 +6,92 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=12732 // NOTA: Explora diferentes sintaxis de bucles para resolver los ejercicios // 1. Crea un bucle que imprima los números del 1 al 20 +for (let i = 1; i <= 20; i++) { + console.log(`${i}`); +} // 2. Crea un bucle que sume todos los números del 1 al 100 y muestre el resultado +let suma = 0 +let i = 1 +while (i < 100) { + suma += i; + i++ +} +console.log("La suma del 1 al 100 es:", suma); // 3. Crea un bucle que imprima todos los números pares entre 1 y 50 +let num = 2; +while (num <= 50) { + console.log(`Números pares: ${num}`); + num += 2; +} + +console.log("----------------"); + +for (let i = 1; i <= 50; i++) { + if (i % 2 === 0) { + console.log(`Números pares: ${i}`); + } +} // 4. Dado un array de nombres, usa un bucle para imprimir cada nombre en la consola +let arrayNombres = ["Pablo", "Karen", "Pepe"] + +for (let i = 0; i < arrayNombres.length; i++) { + console.log(arrayNombres[i]); +} // 5. Escribe un bucle que cuente el número de vocales en una cadena de texto +let texto = "Me gustan los coches" +let contadorVocales = 0 +let vocales = "aeiouAEIOU" + +for (let i = 0; i < texto.length; i++) { + if (vocales.includes(texto[i])) { + contadorVocales++ + } +} +console.log(`El número de vocales en "${texto}" es: ${contadorVocales}`); // 6. Dado un array de números, usa un bucle para multiplicar todos los números y mostrar el producto +let numeros = [2, 3, 4, 5] +let producto = 1 + +for (let i = 0; i < numeros.length; i++) { + producto *= numeros[i] +} +console.log(`El producto de todos los números es: ${producto}`); // 7. Escribe un bucle que imprima la tabla de multiplicar del 5 +let tabla = 5 + +for (let i = 0; i <= 10; i++) { + console.log(`${tabla} x ${i} = ${tabla * i}`); +} // 8. Usa un bucle para invertir una cadena de texto +let cadena = "Hola mundo"; +let invertida = ""; + +for (let i = cadena.length - 1; i >= 0; i--) { + invertida += cadena[i]; +} +console.log(`La cadena invertida es: ${invertida}`); // 9. Usa un bucle para generar los primeros 10 números de la secuencia de Fibonacci +let fib = [0, 1]; +for (let i = 2; i < 10; i++) { + fib[i] = fib[i - 1] + fib[i - 2]; +} +console.log("Primeros 10 números de Fibonacci:", fib); + +// 10. Dado un array de números, usa un bucle para crear un nuevo array que contenga solo los números mayores a 10 +let arrayNumeros = [5, 12, 8, 20, 3, 15, 7]; +let mayoresDiez = []; -// 10. Dado un array de números, usa un bucle para crear un nuevo array que contenga solo los números mayores a 10 \ No newline at end of file +for (let i = 0; i < arrayNumeros.length; i++) { + if (arrayNumeros[i] > 10) { + mayoresDiez.push(arrayNumeros[i]); + } +} +console.log("Números mayores a 10:", mayoresDiez); \ No newline at end of file diff --git a/Basic/17-functions-exercises.js b/Basic/17-functions-exercises.js index fb7eb4e5..6f03fc71 100644 --- a/Basic/17-functions-exercises.js +++ b/Basic/17-functions-exercises.js @@ -6,21 +6,104 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=14146 // NOTA: Explora diferentes sintaxis de funciones para resolver los ejercicios // 1. Crea una función que reciba dos números y devuelva su suma +function sumar(a, b) { + console.log(a + b); +} + +sumar(3, 5) // 2. Crea una función que reciba un array de números y devuelva el mayor de ellos +function compararNumeros(arr) { + // Usamos Math.max y el operador spread para encontrar el mayor + return Math.max(...arr); +} + +console.log(compararNumeros([3, 8, 2, 15, 7])); // Devuelve 15 // 3. Crea una función que reciba un string y devuelva el número de vocales que contiene +function contarVocales(str) { + let contador = 0 + let vocales = "aeiouAEIOU" + for (let i = 0; i < str.length; i++) { + if (vocales.includes(str[i])) { + contador++ + } + } + return contador; +} + +console.log(contarVocales("Hola mundo")); // 4. Crea una función que reciba un array de strings y devuelva un nuevo array con las strings en mayúsculas +function convertirMayus(arr) { + let resultado = []; // creamos un array vacío + for (let i = 0; i < arr.length; i++) { + resultado.push(arr[i].toUpperCase()); // lo añadimos al nuevo array + } + return resultado; +} + +console.log(convertirMayus(["hola", "adios", "bye"])); // 5. Crea una función que reciba un número y devuelva true si es primo, y false en caso contrario +function esPrimo(num) { + if (num < 2) return false; + for (let i = 2; i < num; i++) { + if (num % i === 0) return false; + } + return true; +} + +console.log(esPrimo(7)); // true +console.log(esPrimo(10)); // false // 6. Crea una función que reciba dos arrays y devuelva un nuevo array que contenga los elementos comunes entre ambos +function elementosComunes(arr1, arr2) { + let comunes = []; + for (let i = 0; i < arr1.length; i++) { + if (arr2.includes(arr1[i])) { + comunes.push(arr1[i]); + } + } + return comunes; +} + +console.log(elementosComunes([1, 2, 3, 4], [3, 4, 5, 6])); // 7. Crea una función que reciba un array de números y devuelva la suma de todos los números pares +function sumaPares(arr) { + let suma = 0; + for (let i = 0; i < arr.length; i++) { + if (arr[i] % 2 === 0) { + suma += arr[i]; + } + } + return suma; +} +console.log(sumaPares([1, 2, 3, 4, 5, 6])); // Devuelve 12 // 8. Crea una función que reciba un array de números y devuelva un nuevo array con cada número elevado al cuadrado +function cuadrados(arr) { + let resultado = []; + for (let i = 0; i < arr.length; i++) { + resultado.push(arr[i] ** 2); + } + return resultado; +} +console.log(cuadrados([2, 3, 4])); // Devuelve [4, 9, 16] // 9. Crea una función que reciba una cadena de texto y devuelva la misma cadena con las palabras en orden inverso +function invertirPalabras(str) { + return str.split(" ").reverse().join(" "); +} +console.log(invertirPalabras("Hola mundo JS")); // Devuelve "JS mundo Hola" -// 10. Crea una función que calcule el factorial de un número dado \ No newline at end of file +// 10. Crea una función que calcule el factorial de un número dado +function factorial(num) { + let resultado = 1; + for (let i = 2; i <= num; i++) { + resultado *= i; + } + return resultado; +} +console.log(factorial(5)); // Devuelve 120 \ No newline at end of file diff --git a/Basic/34-hola-laura.js b/Basic/34-hola-laura.js new file mode 100644 index 00000000..799db37e --- /dev/null +++ b/Basic/34-hola-laura.js @@ -0,0 +1 @@ +console.log("Hola Laura"); \ No newline at end of file