diff --git a/ejercicios.js b/ejercicios.js index c12f2d1..6923554 100644 --- a/ejercicios.js +++ b/ejercicios.js @@ -1,83 +1,106 @@ -// Vincular este archivo a index.html, debería aparecer este mensaje en la consola: -console.log("Archivo vinculado correctamente."); - -// Resolver los siguientes ejercicios: - -/* -1. Dado el siguiente array, usar `filter` para obtener solo los números pares, y - luego `map` para elevarlos al cuadrado. -*/ +// Ejercicio 1 const numeros = [1, 2, 3, 4, 5, 6, 7, 8]; + +const resultado = numeros + .filter(numero => numero % 2 ===0) + .map(numero => numero ** 2); + + console.log(resultado); // Resultado esperado: [4, 16, 36, 64] - - - - -/* -2. Dado el siguiente array de productos, obtener los nombres de todos los - productos que cuestan menos de $1000. -*/ - +//Ejercicio 2 const productos = [ { nombre: "Teclado", precio: 800 }, { nombre: "Monitor", precio: 3500 }, { nombre: "Mouse", precio: 600 }, { nombre: "Auriculares", precio: 1200 } ]; -// Resultado esperado: ["Teclado", "Mouse"] -// Pista: se puede resolver encadenando `filter` y `map`. +const baratos = productos + .filter(producto => producto.precio < 1000) + .map(producto => producto.nombre); +console.log(baratos); +//Ejercicio 3 +const persona = { + nombre: "Ana", + edad: 25, + ciudad: "Rosario" +}; +function describir(persona) { + return persona.nombre + " Tiene " + persona.edad + " años y vive en " +persona.ciudad + "."; +} -/* -3. Escribir una función `describir` que reciba un objeto persona con las - propiedades `nombre`, `edad` y `ciudad`, y retorne un string del estilo: - `"Ana tiene 25 años y vive en Rosario."` Usar destructuring en los - parámetros de la función. -*/ - - -/* -4. Dado el siguiente array de estudiantes, calcular el promedio general de notas - usando `map` para extraer las notas y luego un loop para sumarlas. -*/ +console.log(describir(persona)); +//Ejercicio 4 const estudiantes = [ - { nombre: "Ana", nota: 88 }, - { nombre: "Luis", nota: 72 }, - { nombre: "Marta", nota: 95 }, - { nombre: "Carlos", nota: 60 } + { nombre: "Ana", nota:88}, + { nombre: "Luis", nota:72}, + { nombre: "Marta", nota:95}, + { nombre: "Carlos", nota:60}, ]; -// Resultado esperado: 78.75 +const notas = estudiantes.map(estudiantes => estudiantes.nota); -/* -5. Usar `find` para buscar un usuario por nombre dentro de un array, y mostrar - en consola un mensaje diferente según si se encontró o no. -*/ +let suma = 0; + +for (let nota of notas) { + suma += nota; +} + +const promedio = suma / notas.length; + +console.log(promedio); + +//Ejercicio 5 const usuarios = [ { nombre: "Ana", activa: true }, { nombre: "Luis", activa: false }, { nombre: "Marta", activa: true } ]; -// Buscar "Luis" → mostrar sus datos -// Buscar "Pedro" → mostrar "Usuario no encontrado" -/* -6. Dado el siguiente array, construir un nuevo array que contenga solo las - palabras con más de 4 letras, convertidas a mayúsculas. -*/ +const usuario1 = usuarios.find(usuario => usuario.nombre === "Luis"); +if (usuario1) { + console.log(usuario1); +} else { + console.log("Usuario no encontrado"); +} + +const usuario2 = usuarios.find(usuario => usuario.nombre === "Pedro"); + +if (usuario2) { + console.log(usuario2); +} else { + console.log("Usuario no encontrado"); +} + +//Ejercicio 6 const palabras = ["sol", "tormenta", "mar", "lluvia", "río", "arcoíris"]; -// Resultado esperado: ["TORMENTA", "LLUVIA", "ARCOÍRIS"] -// Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()` -// convierte a mayúsculas. +const palabrasFiltradas = palabras + .filter(palabra => palabra.length > 4) + .map(palabra => palabra.toUpperCase()); + +console.log(palabrasFiltradas); + +//Ejercicio 7 +function agrupar(resultados) { + const agrupados = { + aprobados: [], + desaprobados: [] + }; + + for (let resultado of resultados) { + if (resultado.aprobado) { + agrupados.aprobados.push(resultado.nombre); + } else { + agrupados.desaprobados.push(resultado.nombre); + } + } + + return agrupados; +} -/* -7. Escribir una función `agrupar` que reciba un array de objetos con la forma - `{ nombre, aprobado }` y retorne un objeto con dos propiedades: `aprobados` - y `desaprobados`, cada una con un array de nombres. -*/ const resultados = [ { nombre: "Ana", aprobado: true }, { nombre: "Luis", aprobado: false }, @@ -85,18 +108,4 @@ const resultados = [ { nombre: "Carlos", aprobado: false } ]; -// Resultado esperado: -// { -// aprobados: ["Ana", "Marta"], -// desaprobados: ["Luis", "Carlos"] -// } - -/* -8. *(Opcional - closures)* Escribir una función `crearSumador` que reciba un - número `base` y retorne una función que, al llamarla con otro número, -retorne la suma de ambos. - -const sumarDiez = crearSumador(10); -console.log(sumarDiez(5)); // 15 -console.log(sumarDiez(20)); // 30 -*/ +console.log(agrupar(resultados)); \ No newline at end of file diff --git a/index.html b/index.html index b44ebd0..e7cb935 100644 --- a/index.html +++ b/index.html @@ -10,6 +10,6 @@
Vincular el archivo ejercicios.js a este archivo. Luego, resolver ahí los ejercicios.
- +