diff --git a/Basic/03-beginner-exercises.js b/Basic/03-beginner-exercises.js index 7cb75f99..ed55187c 100644 --- a/Basic/03-beginner-exercises.js +++ b/Basic/03-beginner-exercises.js @@ -5,21 +5,112 @@ https://www.youtube.com/live/euVbF1eatEY?si=nHS3QznAlA_C39NK&t=808 */ // 1. Escribe un comentario en una línea - +// Esto es un comentario // 2. Escribe un comentario en varias líneas - +/* Esto es un comentario + en varias lineas */ // 3. Declara variables con valores asociados a todos los datos de tipo primitivos +cadena1 = "Esto es un string" +cadena2 = 'Esto es otro string' +cadena3 = `Esto es otro tipo de string` +numero = 23 +numero_decimal = 1.25 +booleano1 = true +booleano2= false +no_definido = undefined +variable_nula = null +simbolo = Symbol("mysymbol") +myBigInt = BigInt(12345678976551316849843163816) +myBigInt2 = 123156468798798796451361438648n // 4. Imprime por consola el valor de todas las variables +console.log(cadena1) +console.log(cadena2) +console.log(cadena3) +console.log(numero) +console.log(numero_decimal) +console.log(booleano1) +console.log(booleano2) +console.log(no_definido) +console.log(variable_nula) +console.log(simbolo) +console.log(myBigInt) +console.log(myBigInt2) // 5. Imprime por consola el tipo de todas las variables +console.log(typeof cadena1) +console.log(typeof cadena2) +console.log(typeof cadena3) +console.log(typeof numero) +console.log(typeof numero_decimal) +console.log(typeof booleano1) +console.log(typeof booleano2) +console.log(typeof variable_nula) +console.log(typeof simbolo) +console.log(typeof myBigInt) +console.log(typeof myBigInt2) // 6. A continuación, modifica los valores de las variables por otros del mismo tipo +cadena1 = "String1 cambiado" +cadena2 = 'String2 cambiado' +cadena3 = `String3 cambiado` +numero = 55 +numero_decimal = 4.96 +booleano1 = false +booleano2 = true +no_definido = undefined +variable_nula = null +simbolo = Symbol("otherSymbol") +myBigInt = BigInt(35498431389684654318) +myBigInt2 = 649121321323456464648498496464n // 7. A continuación, modifica los valores de las variables por otros de distinto tipo +cadena1 = 25 +cadena2 = 1.25 +cadena3 = null +numero = "cadena" +numero_decimal = 'cadena2' +booleano1 = 5465464654646464n +booleano2 = 13354 +no_definido = "jajajaja" +variable_nula = Symbol("cucu") +simbolo = 123 +myBigInt = null +myBigInt2 = undefined // 8. Declara constantes con valores asociados a todos los tipos de datos primitivos +const cCadena = "Cadena1" +const cNumero = 123 +const cDecimal = 2.25 +const cBooleano = true +const nulo = null +const indefinido = undefined +const cSimbolo = Symbol("otroSimbolo") +const cBigInt = BigInt(12354864646846846846464646) +const cBigInt2 = 12348648648646431315n // 9. A continuación, modifica los valores de las constantes +/*cCadena = "Otra" +cCadena = "otrovalor" +cNumero = 12315 +cDecimal = 2.24 +cBooleano = false +nulo = 12 +indefinido = "hola" +cSimbolo = Symbol("masSimbolos") +cBigInt = 12387948647n +cBigInt2 = BigInt(135464638468743684)*/ -// 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 +console.log(cadena1) +console.log(cadena2) +console.log(cadena3) +console.log(numero) +console.log(numero_decimal) +console.log(booleano1) +console.log(booleano2) +console.log(no_definido) +console.log(variable_nula) +console.log(simbolo) +console.log(myBigInt) +console.log(myBigInt2) \ No newline at end of file diff --git a/Basic/04-operators.js b/Basic/04-operators.js index c62ede52..0d662ed9 100644 --- a/Basic/04-operators.js +++ b/Basic/04-operators.js @@ -43,12 +43,12 @@ console.log(a < b) // Menor que console.log(a >= b) // Mayor o igual que console.log(a <= b) // Menor o igual que console.log(a == b) // Igualdad por valor -console.log(a == 6) -console.log(a == "6") +console.log(a == 6) // Igualdad por valor, esto es true +console.log(a == "6") // Igualdad por valor, esto también es true console.log(a == a) console.log(a === a) // Igualdad por identidad (por tipo y valor) o igualdad estricta -console.log(a === 6) -console.log(a === "6") +console.log(a === 6) // Este da true porque compara con el valor 6 numérico +console.log(a === "6") //Este ya da false por que compara a con el valor 6 pero en formato string console.log(a != 6) // Desigualdad por valor console.log(a !== "6") // Desigualdad por identidad (por tipo y valor) o desigualdad estricta console.log(0 == false) @@ -74,7 +74,7 @@ Truthy values (valores verdaderos) Falsy values (valores falsos) - 0 -- 0n +- 0n - null - undefined - NaN (Not a Number) @@ -85,6 +85,7 @@ Falsy values (valores falsos) // Operadores lógicos // and (&&) + console.log(5 > 10 && 15 > 20) console.log(5 < 10 && 15 < 20) console.log(5 < 10 && 15 > 20) @@ -95,7 +96,6 @@ console.log(5 > 10 || 15 > 20) console.log(5 < 10 || 15 < 20) console.log(5 < 10 || 15 > 20) console.log(5 > 10 || 15 > 20 || 30 > 40) - console.log(5 > 10 && 15 > 20 || 30 < 40) // not (!) @@ -105,6 +105,5 @@ console.log(!(5 > 10 && 15 > 20)) console.log(!(5 > 10 || 15 > 20)) // Operadores ternarios - const isRaining = false isRaining ? console.log("Está lloviendo") : console.log("No está lloviendo") \ No newline at end of file diff --git a/Basic/05-operators-exercises.js b/Basic/05-operators-exercises.js index 83ca2884..d355c81f 100644 --- a/Basic/05-operators-exercises.js +++ b/Basic/05-operators-exercises.js @@ -5,22 +5,55 @@ https://www.youtube.com/live/euVbF1eatEY?si=nHS3QznAlA_C39NK&t=808 */ // 1. Crea una variable para cada operación aritmética +let a = 2 +let b = 6 +let suma = a + b +let resta = a - b +let multiplicacion = a * b +let division = a / b +let modulo = b % a +let exponente = a ** b +let aIncremento = a++ +let bDecremento = b-- // 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 +let miVariable = 0 +miVariable += a +miVariable -= a +miVariable *= a +miVariable /= a +miVariable %= a +miVariable **= a // 3. Imprime 5 comparaciones verdades con diferentes operadores de comparación +console.log(a < b) +console.log(b >= a) +console.log(a == 3) +console.log(b == "5") +console.log(a === 3) // 4. Imprime 5 comparaciones falsas con diferentes operadores de comparación +console.log(a > b) +console.log(a >= b) +console.log(a == 2) +console.log(b == a) +console.log(b === "5") // 5. Utiliza el operador lógico and +console.log(a > b && b < 10) // 6. Utiliza el operador lógico or +console.log(a == 2 || b == 5) // 7. Combina ambos operadores lógicos - +console.log(b > a && a === 3 || b == 3) // 8. Añade alguna negación +console.log(!(a > b && b == 5)) // 9. Utiliza el operador ternario +let isHeating = true +isHeating ? console.log("Hace un calor que te torras") : console.log("Que fresquito se está") -// 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 +console.log("The result is: " + (a > b || b < a) && a+b ) \ No newline at end of file diff --git a/Basic/07-strings-exercises.js b/Basic/07-strings-exercises.js index 8898496e..f1f4fbc1 100644 --- a/Basic/07-strings-exercises.js +++ b/Basic/07-strings-exercises.js @@ -5,21 +5,52 @@ https://www.youtube.com/live/euVbF1eatEY?si=nHS3QznAlA_C39NK&t=808 */ // 1. Concatena dos cadenas de texto +let cadena1 = "Hola que tal " +let cadena2 = "estás" +let frase = cadena1 + cadena2 +console.log("Frase:" + frase) // 2. Muestra la longitud de una cadena de texto +console.log(frase.length) // 3. Muestra el primer y último carácter de un string +console.log(frase[0]) +console.log(frase[frase.length-1]) // 4. Convierte a mayúsculas y minúsculas un string +console.log(frase.toUpperCase()) +console.log(frase.toLowerCase()) // 5. Crea una cadena de texto en varias líneas +let cadenaMultiple = `Esta es +una cadena +de texto +de varias +lineas` + +console.log(cadenaMultiple) // 6. Interpola el valor de una variable en un string +let email = "lisgreen@gmail.com" +console.log(`${frase}! Bienvenida ${email}`) // 7. Reemplaza todos los espacios en blanco de un string por guiones +console.log(frase.replace(" ", "-")) // 8. Comprueba si una cadena de texto contiene una palabra concreta +console.log(frase.indexOf("que")) +console.log(frase.includes("que")) + +console.log(frase.slice(0,4)) // 9. Comprueba si dos strings son iguales +let cadenaA = "hola" +let cadenaB = "hola" +let cadenaC = "Hola" + +console.log(cadenaA == cadenaB) +console.log(cadenaA == cadenaC) + -// 10. Comprueba si dos strings tienen la misma longitud \ No newline at end of file +// 10. Comprueba si dos strings tienen la misma longitud +console.log(cadenaA.length == cadenaB.length) diff --git a/Basic/09-conditionals-exercises.js b/Basic/09-conditionals-exercises.js index 11e5b696..98cff4e8 100644 --- a/Basic/09-conditionals-exercises.js +++ b/Basic/09-conditionals-exercises.js @@ -7,24 +7,137 @@ https://www.youtube.com/live/XCNjoIoO3Ws?si=3XCjdZ9r41JID-by&t=978 // if/else/else if/ternaria // 1. Imprime por consola tu nombre si una variable toma su valor +nombre = "Alice" +if (nombre == "Alice") { + console.log("Mi nombre es " + nombre) +} else { + console.log("No hay nombre asignado") +} // 2. Imprime por consola un mensaje si el usuario y contraseña concide con unos establecidos +user = "lisgreen" +password = 123456 + +if (user == "lisgreen" && password == 123456) { + console.log("El usuario " + user + " es correcto") +} else { + console.log("El usuario o el password no son correctos") +} // 3. Verifica si un número es positivo, negativo o cero e imprime un mensaje +numeroPositivo = 5 +numeroNegativo = -4 +numeroCero = 0 + +numero = numeroPositivo +//numero = numeroNegativo +//numero = numeroCero + +if (numero > 0) { + console.log("El numero " + numero + " es positivo") +} else if (numero < 0) { + console.log("El numero " + numero + " es negativo") +} else { + console.log("El numero " + numero + " es CERO") +} // 4. Verifica si una persona puede votar o no (mayor o igual a 18) e indica cuántos años le faltan +edadUsuario = 19 + +if (edadUsuario >= 18) { + console.log("El usuario es mayor de edad y puede votar") +} else { + console.log("El usuario es menor de edad y no puede votar.\nLe faltan " + (18-edadUsuario) + " año/s para votar") +} // 5. Usa el operador ternario para asignar el valor "adulto" o "menor" a una variable // dependiendo de la edad +edadUsuario = 12 +let esAdulto = edadUsuario >= 18 ? "adulto" : "menor" +console.log("El usuario es " + esAdulto) // 6. Muestra en que estación del año nos encontramos dependiendo del valor de una variable "mes" +let mes = 4 + +if (mes == 1 || mes == 2 || mes == 12) { + estacion = "invierno" +} else if (mes == 3 || mes == 4 || mes == 5) { + estacion = "primavera" +} else if (mes >= 6 && mes <= 8) { + estacion = "verano" +} else if (mes >= 9 && mes <= 11) { + estacion = "otoño" +} +console.log("El mes de " + mes + " pertenece a la estación de " + estacion) // 7. Muestra el número de días que tiene un mes dependiendo de la variable del ejercicio anterior +if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) { + diasMes = 31 +} else if (mes == 2) { + diasMes = 28 +} else { + diasMes = 30 +} + +console.log("El mes " + mes + " tiene " + diasMes + " días") // switch // 8. Usa un switch para imprimir un mensaje de saludo diferente dependiendo del idioma +idioma = "English" + +switch(idioma) { + case "Spanish": mensaje = "Hola, ¿que tal como estás?" + break + case "English": mensaje = "Hi, how are you?" + break + case "Catalan": mensaje = "Hola, ¿que tal com estàs?" + break + case "French": mensaje = "Bonjour, comment allez-vous?" + break +} +console.log(mensaje) // 9. Usa un switch para hacer de nuevo el ejercicio 6 +mes = 7 +switch(mes) { + case 1: + case 2: estacion = "invierno" + break + case 3: + case 4: + case 5: estacion = "primavera" + break + case 6: + case 7: + case 8: estacion = "verano" + break + case 9: + case 10: + case 11: estacion = "otoño" + break + case 12: estacion = "invierno" + break +} +console.log("El mes de " + mes + " pertenece a la estación de " + estacion) -// 10. Usa un switch para hacer de nuevo el ejercicio 7 \ No newline at end of file +// 10. Usa un switch para hacer de nuevo el ejercicio 7 +mes = 9 +switch(mes) { + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: diasMes = 31 + break + case 2: diasMes = 28 + break + case 4: + case 6: + case 9: + case 11: diasMes = 30 + break +} +console.log("El mes de " + mes + " tiene " + diasMes + " días") diff --git a/Basic/10-array.js b/Basic/10-array.js index 1eac03ae..56e9f7f1 100644 --- a/Basic/10-array.js +++ b/Basic/10-array.js @@ -49,7 +49,15 @@ myArray[1] = "mouredev" console.log(myArray) -// Métodos comunes +// MÉTODOS COMUNES +//push: Introducir elementos en el array +//pop: Elimina el último elemento del array y devuelve su valor +//shift: Elimina el primer elemento del array y devuelve su valor +//unshift: Añadir 1 o más elementos al principio del array +//length: Devuelve la longitud del array +//clear: Borrar un array +//slice: Copia el array en otro eligiendo que elementos quieres +//splice: Elimina desde la posicion indicada, los elementos indicados, tambien puede añadir nuevos elementos myArray = [] @@ -68,25 +76,26 @@ myArray.pop() console.log(myArray) // shift y unshift - +console.log("SHIFT--------------------------") console.log(myArray.shift()) console.log(myArray) +console.log("UNSHIFT--------------------------") myArray.unshift("Brais", "mouredev") console.log(myArray) -// length +// length = longitud del array console.log(myArray.length) -// clear +// clear: Borrar un array myArray = [] myArray.length = 0 // alternativa console.log(myArray) -// slice - +// slice: Copia el array en otro eligiendo que elementos quieres +console.log("SLICE-------------------------------") myArray = ["Brais", "Moure", "mouredev", 37, true] let myNewArray = myArray.slice(1, 3) @@ -94,12 +103,13 @@ let myNewArray = myArray.slice(1, 3) console.log(myArray) console.log(myNewArray) -// splice +// splice: +console.log("SPLICE-------------------------------") -myArray.splice(1, 3) +myArray.splice(1, 3) //Elimina 3 elementos contando desde el elemento 1 console.log(myArray) myArray = ["Brais", "Moure", "mouredev", 37, true] -myArray.splice(1, 2, "Nueva entrada") +myArray.splice(1, 2, "Nueva entrada") //Añadirá el elemento "Nueva entrada" después del elemento 1 console.log(myArray) \ No newline at end of file diff --git a/Basic/11-set.js b/Basic/11-set.js index 84bddd57..2febb8f5 100644 --- a/Basic/11-set.js +++ b/Basic/11-set.js @@ -21,7 +21,9 @@ console.log(mySet) // Métodos comunes // add y delete - +//delete: Borra un elemento, hay que pasarle el valor, no el indice +//devuelve un true si el elemento existe y se ha eliminado +//devuelve un false si no existe el elemento mySet.add("https://moure.dev") console.log(mySet) @@ -31,16 +33,16 @@ mySet.delete("https://moure.dev") console.log(mySet) console.log(mySet.delete("Brais")) -console.log(mySet.delete(4)) +console.log(mySet.delete(4)) console.log(mySet) -// has +// has: Comprueba si existe un valor en un Set console.log(mySet.has("Moure")) console.log(mySet.has("Brais")) -// size +// size: Tamaño del Set console.log(mySet.size) @@ -49,7 +51,6 @@ let myArray = Array.from(mySet) console.log(myArray) // Convertir un array a set - mySet = new Set(myArray) console.log(mySet) diff --git a/Basic/12-map.js b/Basic/12-map.js index 8658d474..869f6493 100644 --- a/Basic/12-map.js +++ b/Basic/12-map.js @@ -49,15 +49,15 @@ console.log(myMap) // keys, values y entries -console.log(myMap.keys()) -console.log(myMap.values()) -console.log(myMap.entries()) +console.log(myMap.keys()) //Nombres de las claves +console.log(myMap.values()) //Contenido de los valores +console.log(myMap.entries()) //Todas las claves y valores -// size +// size: Tamaño del mapa console.log(myMap.size) -// clear +// clear: Eliminar el mapa myMap.clear() diff --git a/Basic/13-structures-exercises.js b/Basic/13-structures-exercises.js index bdeb6d1c..ede84982 100644 --- a/Basic/13-structures-exercises.js +++ b/Basic/13-structures-exercises.js @@ -5,21 +5,63 @@ https://www.youtube.com/live/xg1GeHKiNzU?si=oiWHK8bDTZ1c98hF&t=885 */ // 1. Crea un array que almacene cinco animales +let animales = ["gato", "perro", "loro", "hamster", "iguana"] // 2. Añade dos más. Uno al principio y otro al final +animales.unshift("tigre") +animales.push("murcielago") +console.log("Animales = " + animales) // 3. Elimina el que se encuentra en tercera posición +console.log("Animal en 3ª posision: " + animales[2]) +animales.splice(2,1) +console.log("Animales = " + animales) // 4. Crea un set que almacene cinco libros +let setLibros = new Set(["El señor de los anillos", "Memorias de una Geisha", "Olvidado rey Gudu", "Stonehenge", "El hobbit"]) +console.log(setLibros) -// 5. Añade dos más. Uno de ellos repetido +// 5. Añade dos más. Uno de ellos repetido. No admite repetidos! +setLibros.add("Azteca") +setLibros.add("El hobbit") +console.log(setLibros) // 6. Elimina uno concreto a tu elección +setLibros.delete("Olvidado rey Gudu") +console.log(setLibros) // 7. Crea un mapa que asocie el número del mes a su nombre +let miMapa = 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(miMapa) // 8. Comprueba si el mes número 5 existe en el map e imprime su valor +if (miMapa.has(5)) { + console.log("El mes 5 se corresponde a el mes de " + miMapa.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 +miMapa.set("Verano",["Junio", "Julio", "Agosto"]) +console.log("Los meses de verano son " + miMapa.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 myArray = ["calabacin", "huevo", "aceite", "sal"] +let mySet = new Set(myArray) +console.log(mySet) +let myMap = new Map() +myMap.set("ingredientes", mySet) +console.log(myMap) diff --git a/Basic/14-loops.js b/Basic/14-loops.js index 082d8dc2..32b7169f 100644 --- a/Basic/14-loops.js +++ b/Basic/14-loops.js @@ -42,28 +42,28 @@ do { myArray = [1, 2, 3, 4] -mySet = new Set(["Brais", "Moure", "mouredev", 37, true, "braismoure@mouredev.com"]) - -myMap = new Map([ - ["name", "Brais"], - ["email", "braismoure@mouredev.com"], - ["age", 37] -]) - -myString = "¡Hola, JavaScript!" - for (let value of myArray) { console.log(value) } +mySet = new Set(["Brais", "Moure", "mouredev", 37, true, "braismoure@mouredev.com"]) + for (let value of mySet) { console.log(value) } +myMap = new Map([ + ["name", "Brais"], + ["email", "braismoure@mouredev.com"], + ["age", 37] +]) + for (let value of myMap) { console.log(value) } +myString = "¡Hola, JavaScript!" + for (let value of myString) { console.log(value) } diff --git a/Basic/15-loops-exercises.js b/Basic/15-loops-exercises.js index 1a6a1e8d..5a78bdc3 100644 --- a/Basic/15-loops-exercises.js +++ b/Basic/15-loops-exercises.js @@ -7,21 +7,92 @@ https://www.youtube.com/live/xg1GeHKiNzU?si=oiWHK8bDTZ1c98hF&t=885 // 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; +for (let i = 1; i <= 100; i++) { + suma += i; +} +console.log("La suma total de los números del 1 al 100 es: " + suma); // 3. Crea un bucle que imprima todos los números pares entre 1 y 50 +for (let i = 1; i <= 50; i++){ + if (!(i % 2)) { + console.log(i); + } +} // 4. Dado un array de nombres, usa un bucle para imprimir cada nombre en la consola +let nombres = ["Ana", "Fernando", "Javier", "David", "Alicia", "Delia"]; +for (let i = 0; i < nombres.length; i++) { + console.log(`${i+1}. ${nombres[i]}`); +} // 5. Escribe un bucle que cuente el número de vocales en una cadena de texto +let palabra = "supercalifragiliespialidoso"; +let numeroVocales = 0; +for (let i = 0; i < palabra.length; i++) { + if (palabra[i] === "a" || palabra[i] === "e" || palabra[i] === "i" || palabra[i] === "o" || palabra[i] === "u") { + numeroVocales++; + } +} +console.log(`El número de vocales que tiene la palabra ${palabra} es ${numeroVocales}`); + // 6. Dado un array de números, usa un bucle para multiplicar todos los números y mostrar el producto +let numeros = [23, 4, 456, 1, 467, 3, 4235, 23, 6, 90]; +let resultado = 0; + +for (let i = 0; i < numeros.length; i++) { + resultado *= numeros[i]; +} + +console.log(`El resultado de multiplicar todos los números es: ${resultado}`); // 7. Escribe un bucle que imprima la tabla de multiplicar del 5 +for (let i = 1; i <= 10; i++) { + resultado = 5 * i; + console.log(`5x${i} = ${resultado}`); +} // 8. Usa un bucle para invertir una cadena de texto +let cadena = "supercalifragiliespialidoso"; +let cadenaReves = ""; + +for (let i = cadena.length; i > 0; i--) { + cadenaReves += cadena[i-1]; + console.log("Cadena Reves = " + cadenaReves); +} // 9. Usa un bucle para generar los primeros 10 números de la secuencia de Fibonacci +let num1 = 0; +let num2 = 1; + +console.log(num1); +console.log(num2); + +for (let i = 3; i <= 11; i++) { + let nextNumero = num1 + num2; + console.log(nextNumero); + + num1 = num2; + num2 = nextNumero; +} + +// 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 nuevoArray = []; +let i = 0, x = 0; +//let numeros = [23, 4, 456, 1, 467, 3, 4235, 23, 6, 90]; +console.log(`Numeros: ${numeros} Longitud: ${numeros.length}`); -// 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 +while (i < numeros.length) { + if (numeros[i] > 10) { + nuevoArray[x] = numeros[i]; + x++; + } + i++; +} +console.log(`Nuevo array con números mayores de 10: ${nuevoArray}`); diff --git a/Basic/16-functions.js b/Basic/16-functions.js index 3f0d1347..256d6ed1 100644 --- a/Basic/16-functions.js +++ b/Basic/16-functions.js @@ -113,6 +113,10 @@ myArray.forEach(function (value) { myArray.forEach((value) => console.log(value)) +myArray.forEach(function (value) { + console.log(value); +}) + mySet.forEach((value) => console.log(value)) myMap.forEach((value) => console.log(value)) \ No newline at end of file diff --git a/Basic/17-functions-exercises.js b/Basic/17-functions-exercises.js index 4237cf00..38bc67a4 100644 --- a/Basic/17-functions-exercises.js +++ b/Basic/17-functions-exercises.js @@ -7,18 +7,112 @@ https://www.youtube.com/live/xg1GeHKiNzU?si=oiWHK8bDTZ1c98hF&t=885 // 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 sumarNumeros(num1, num2){ + return num1 + num2; +} + +console.log(sumarNumeros(34,23)); // 2. Crea una función que reciba un array de números y devuelva el mayor de ellos +let myArray = [24,5,234,12,67,953,1,567,9]; +let numeroMayor = 0; +function elNumeroMayor(numeros){ + for (i = 0; i < numeros.length; i++) { + if (numeros[i] > numeroMayor) { + numeroMayor = numeros[i] + } + } + return numeroMayor; +} + +console.log(`El número mayor de ${myArray} es: ${elNumeroMayor(myArray)}`); // 3. Crea una función que reciba un string y devuelva el número de vocales que contiene +function numeroVocales(palabra) { + let totalVocales = 0; + + for (let i = 0; i < palabra.length; i++) { + if (palabra[i] === "a" || palabra[i] === "e" || palabra[i] === "i" || palabra[i] === "o" || palabra[i] === "u") { + totalVocales++; + } + } + return totalVocales; +} + +let palabra = "supercalifragiliespialidoso"; +console.log(`El número de vocales que tiene la palabra ${palabra} es ${numeroVocales(palabra)}`); // 4. Crea una función que reciba un array de strings y devuelva un nuevo array con las strings en mayúsculas +let animales = ["gato", "perro", "loro", "hamster", "iguana"] + +function convertirAMayusculas(myArray) { + let newArray = []; + let i = 0; + for (let value of myArray) { + newArray[i] = value.toUpperCase(); + i++; + } + return newArray; +} + +console.log(`El nuevo array es: ${convertirAMayusculas(animales)}`); // 5. Crea una función que reciba un número y devuelva true si es primo, y false en caso contrario +function esPrimo(numero) { + if (numero <= 1) { + return false; + } + if (numero === 2) { + return true; + } + if (numero %2 === 0) { + return false; + } + for (let i = 3; i <= Math.sqrt(numero); i += 2) { + if (numero % i === 0) { + return false; + } + } + + return true; //Si pasa todos los chequeos es primo +} + +let numeroComprobar = 13; +console.log(`El número ${numeroComprobar} es primo? ${esPrimo(numeroComprobar)?"SI":"NO"}`); // 6. Crea una función que reciba dos arrays y devuelva un nuevo array que contenga los elementos comunes entre ambos +let animales1 = ["gato", "perro", "loro", "hamster", "iguana"]; +let animales2 = ["mono", "tigre", "perro", "morsa", "hamster", "pantera"]; +let animales3 = []; + +function buscarElementosComunes(array1, array2) { + let array3 = []; + for (i = 0; i < array1.length; i++) { + for (x = 0; x < array2.length; x++){ + if (array1[i] === array2[x]) { + array3.push(array1[i]); + } + } + } + return array3; +} + +animales3 = buscarElementosComunes(animales1, animales2); +console.log("Los animales comunes son:" + JSON.stringify(animales3)); // 7. Crea una función que reciba un array de números y devuelva la suma de todos los números pares +function sumarPares(arrayNumeros) { + let suma = 0; + arrayNumeros.forEach((value) => { + if (value % 2 === 0) { + suma += value + } + }); + return suma; +} + +let numeros = [34,5,3,677,23,6,87,28,16,90,23]; +console.log(`La suma de todos los números pares es ${sumarPares(numeros)}`); // 8. Crea una función que reciba un array de números y devuelva un nuevo array con cada número elevado al cuadrado diff --git a/Basic/19-objects-exercises.js b/Basic/19-objects-exercises.js index 2eee943d..5244b2ff 100644 --- a/Basic/19-objects-exercises.js +++ b/Basic/19-objects-exercises.js @@ -5,21 +5,68 @@ https://www.youtube.com/live/SBXEpAx_y_Q?si=Sbqqa2-_eGwsUkH-&t=958 */ // 1. Crea un objeto con 3 propiedades +let coche = { + modelo: "Audi", + puertas: 5, + color: "plata" +} // 2. Accede y muestra su valor +console.log(`El coche de Yerai es un ${coche.modelo} de ${coche["puertas"]} puertas de color ${coche.color}`); // 3. Agrega una nueva propiedad +coche.cilindrada = "1.8V"; +console.log(`El coche de Yerai es un ${coche.modelo} ${coche.cilindrada} de ${coche["puertas"]} puertas de color ${coche.color}`); // 4. Elimina una de las 3 primeras propiedades +delete coche.color; +console.log(`El coche de Yerai es un ${coche.modelo} ${coche.cilindrada} de ${coche["puertas"]} puertas de color ${coche.color}`); // 5. Agrega una función e invócala +coche.velocidad = function() { + console.log("El coche está en marcha"); +} -// 6. Itera las propiedades del objeto +// 6. Itera las propiedades del objeto, itera las claves no los valores +console.log("Las propiedades del coche son estas: "); +for (let key in coche) { + console.log(key + ": " + coche[key]); +} // 7. Crea un objeto anidado +let person = { + name: "Alice", + age: 54, + sex: "female", + walk: function () { + console.log(`${this.name} camina`); + }, + job: { + name: "QA Analyst", + experience: 4, + work: function () { + console.log(`${this.name} trabaja`); + } + } +} + +console.log(person); // 8. Accede y muestra el valor de las propiedades anidadas +console.log(person.job.name + " con " + person.job.experience + " años de experiencia"); +person.job.work(); + +//9. Comprueba si los dos objetos creados son iguales +let coche2 = { + modelo: "Audi", + puertas: 5, + color: "plata" +} + +console.log(coche); +console.log(coche2); +console.log(coche == coche2); //false -// 9. Comprueba si los dos objetos creados son iguales +// 10. Comprueba si dos propiedades diferentes son iguales +console.log(coche.modelo == coche2.modelo); //true -// 10. Comprueba si dos propiedades diferentes son iguales \ No newline at end of file diff --git a/Basic/20-destructuring-spreading.js b/Basic/20-destructuring-spreading.js index dcfa5c7c..34bfd3f2 100644 --- a/Basic/20-destructuring-spreading.js +++ b/Basic/20-destructuring-spreading.js @@ -52,7 +52,7 @@ console.log(age) console.log(alias) // Sintaxis objects con valores predeterminados - +// No se crean las variables como para los arrays let { name2, age2, alias2, email = "email@email.com" } = person console.log(name2) // No existe console.log(age2) // No existe @@ -60,7 +60,7 @@ console.log(alias2) // No existe console.log(email) // Sintaxis objects con nuevos nombres de variables - +// Poner nombre key y nombre nueva variable let { alias: alias3, name: name3, age: age3 } = person console.log(name3) console.log(age3) @@ -90,7 +90,7 @@ console.log(name4) console.log(jobName) // Propagación (...) - +// Expandir elementos de un array u objeto a otro array o a otros objetos // Sintaxis arrays let myArray2 = [...myArray, 5, 6] diff --git a/Basic/21-destructuring-spreading-exercises.js b/Basic/21-destructuring-spreading-exercises.js index 2032d839..ed81976f 100644 --- a/Basic/21-destructuring-spreading-exercises.js +++ b/Basic/21-destructuring-spreading-exercises.js @@ -4,23 +4,100 @@ Objetos, desestructuración, propagación y clases https://www.youtube.com/live/SBXEpAx_y_Q?si=Sbqqa2-_eGwsUkH-&t=958 */ + // 1. Usa desestructuración para extraer los dos primeros elementos de un array +let animales = ["gato", "perro", "hamster", "iguana"] + +let [myValue0, myValue1] = animales; + +console.log(myValue0 + " - " + myValue1); // 2. Usa desestructuración en un array y asigna un valor predeterminado a una variable +let [animal0 = 0, animal1 = 0, animal2 = 0, animal3 = 0, animal4 = 0, animal5 = 0] = animales; + +console.log(animales); +console.log(animal0 + " - " + animal1 + " - " + animal2 + " - " + animal3 + " - " + animal4 + " - " + animal5); // 3. Usa desestructuración para extraer dos propiedades de un objeto +let coche = { + modelo: "Audi", + puertas: 5, + color: "plata" +} + +let { modelo, puertas, color } = coche +console.log(modelo) +console.log(puertas) +console.log(color) // 4. Usa desestructuración para extraer dos propiedades de un objeto y asígnalas // a nuevas variables con nombres diferentes +let { modelo: modelo1, puertas: puertas1 } = coche +console.log(modelo1) +console.log(puertas1) // 5. Usa desestructuración para extraer dos propiedades de un objeto anidado +let person = { + name: "Alice", + age: 54, + sex: "female", + walk: function () { + console.log(`${this.name} camina`); + }, + job: { + name: "QA Analyst", + experience: 4, + work: function () { + console.log(`${this.name} trabaja`); + } + } +} + +let { name: name1, job: { name: jobName} } = person +console.log(name1 + " - " + jobName) // 6. Usa propagación para combinar dos arrays en uno nuevo +let animales2 = ["pato", "buitre", "aguila", "paloma"] + +let animales3 = [...animales, ...animales2] +console.log(animales3) // 7. Usa propagación para crear una copia de un array +let animales4 = [...animales] +console.log(animales4) // 8. Usa propagación para combinar dos objetos en uno nuevo +let personCoche = {...person, ...coche} +console.log(personCoche) // 9. Usa propagación para crear una copia de un objeto +let person2 = {...person} +console.log(person2) + +// 10. Combina desestructuración y propagación + +// Desestructuración: extraemos el primer elemento de cada array +let [primerAnimal, segundoAnimal, ...otrosAnimales] = animales; + +// Combina ambos arrays usando propagación +let combinados = [...animales, ...animales2]; + +console.log(`Primer animal: ${primerAnimal}`); +console.log(`Segundo animal: ${segundoAnimal}`); +console.log("Otros animales:", otrosAnimales); +console.log("Animales combinados:", combinados); + +// Con objetos ----------------------------------- + +// Desestructuramos propiedades del objeto 'person' +let { name: personName, age, job } = person; + +// Desestructuramos propiedades del objeto 'coche' +let { modelo: modelo2, color: color2 } = coche; + +// Combina los dos objetos usando propagación +let combinedObject = { ...person, ...coche }; -// 10. Combina desestructuración y propagación \ No newline at end of file +console.log(`Persona: ${personName}, Edad: ${age}, Trabajo: ${job.name}`); +console.log(`Coche modelo: ${modelo2}, Color: ${color2}`); +console.log("Objeto combinado:", combinedObject); diff --git a/Basic/tempCodeRunnerFile.js b/Basic/tempCodeRunnerFile.js new file mode 100644 index 00000000..389b70e4 --- /dev/null +++ b/Basic/tempCodeRunnerFile.js @@ -0,0 +1 @@ + + animal4 + " - " + animal5) \ No newline at end of file