// 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. */ const numbers = [1, 2, 3, 4, 5, 6, 7, 8]; // Resultado esperado: [4, 16, 36, 64] const isEven = (num) => num % 2 === 0; const evenNumbers = numbers.filter(isEven); const squaredEvenNumbers = evenNumbers.map(num => num ** 2); console.log(squaredEvenNumbers); /* 2. Dado el siguiente array de productos, obtener los nombres de todos los productos que cuestan menos de $1000. */ const products = [ { 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 cheapestProducts = products.filter(product => product.precio < 1000); const cheapestProductNames = cheapestProducts.map(product => product.nombre); console.log(cheapestProductNames); /* 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. */ const descriptingPerson = ({name, age, city}) => (`${name} tiene ${age} años y vive en ${city}.`); descriptingPerson({ name: "Facundo", age: 25, city: "Rosario" }); console.log(descriptingPerson({ name: "Facundo", age: 25, city: "Rosario" })); /* 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. */ const students = [ { name: "Ana", grades: 88 }, { name: "Luis", grades: 72 }, { name: "Marta", grades: 95 }, { name: "Carlos", grades: 60 } ]; // Resultado esperado: 78.75 const grades = students.map(student => student.grades); let sum = 0; for (let grade of grades) { sum += grade; } const average = sum / grades.length; console.log(average); /* 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. */ const users = [ { name: "Ana", active: true }, { name: "Luis", active: false }, { name: "Marta", active: true } ]; // Buscar "Luis" → mostrar sus datos // Buscar "Pedro" → mostrar "Usuario no encontrado" const findUser = (name) => { const user = users.find(user => user.name === name); if (user) { console.log(user); } else { console.log("Usuario no encontrado"); } }; findUser("Luis"); findUser("Pedro"); /* 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 words = ["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 longWords = words.filter(word => word.length > 4).map(word => word.toUpperCase()); console.log(longWords); /* 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 results = [ { name: "Ana", passed: true }, { name: "Luis", passed: false }, { name: "Marta", passed: true }, { name: "Carlos", passed: false } ]; // Resultado esperado: // { // aprobados: ["Ana", "Marta"], // desaprobados: ["Luis", "Carlos"] // } const agroupedResults = results.reduce((acc, result) => { if (result.passed) { acc.passed.push(result.name); } else { acc.failed.push(result.name); } return acc; }, { passed: [], failed: [] }); console.log(agroupedResults); /* 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 */ const makeSum = (base) => (num) => base + num; const sumTen = makeSum(10); console.log(sumTen(5)); console.log(sumTen(20));