// 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 numeros = [1, 2, 3, 4, 5, 6, 7, 8]; // Resultado esperado: [4, 16, 36, 64] const pares = numeros.filter(numero => numero % 2 === 0 ); const cuadrados = pares.map(numero => numero * numero ); console.log(cuadrados); /* 2. Dado el siguiente array de productos, obtener los nombres de todos los productos que cuestan menos de $1000. */ const productos = [ { nombre: "Teclado", precio: 800 }, { nombre: "Monitor", precio: 3500 }, { nombre: "Mouse", precio: 600 }, { nombre: "Auriculares", precio: 1200 } ]; const productos = [ { nombre: "Teclado", precio: 800 }, { nombre: "Monitor", precio: 3500 }, { nombre: "Mouse", precio: 600 }, { nombre: "Auriculares", precio: 1200 } ]; const baratos = productos .filter(producto => producto.precio < 1000) .map(producto => producto.nombre); console.log(baratos); // Resultado esperado: ["Teclado", "Mouse"] // Pista: se puede resolver encadenando `filter` y `map`. /* 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. */ function describir ({nombre, edad, ciudad}) { console.log (`${nombre} tiene ${edad} años y vive en ${ciudad}.`); } describir({ nombre: "Ana", edad: 25, ciudad: "Rosario" }); function describir({nombre, edad, ciudad}) { return `${nombre} tiene ${edad} años y vive en ${ciudad}.`; } console.log(describir({ nombre: "Ana", edad: 25, ciudad: "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 estudiantes = [ { nombre: "Ana", nota: 88 }, { nombre: "Luis", nota: 72 }, { nombre: "Marta", nota: 95 }, { nombre: "Carlos", nota: 60 } ]; const nota = estudiantes.map(u => u.nota); console.log(nota); function promedio(nota) { let suma = 0; for (let i = 0; i < nota.length; i++) { suma += nota[i]; } return suma / nota.length; } console.log("promedio:", promedio(nota)); // Resultado esperado: 78.75 /* 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 usuarios = [ { nombre: "Ana", activa: true }, { nombre: "Luis", activa: false }, { nombre: "Marta", activa: true } ]; const usuarioEncontrado = usuarios.find(usuario => usuario.nombre === "Pedro" ); if (usuarioEncontrado) { console.log("Usuario encontrado:"); console.log(usuarioEncontrado); } else { console.log("Usuario no encontrado"); } // 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 palabras = ["sol", "tormenta", "mar", "lluvia", "río", "arcoíris"]; const resultado = palabras .filter(palabra => palabra.length > 4) .map(palabra => palabra.toUpperCase()); console.log(resultado); // Resultado esperado: ["TORMENTA", "LLUVIA", "ARCOÍRIS"] // Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()` // convierte a mayúsculas. /* 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 }, { nombre: "Marta", aprobado: true }, { nombre: "Carlos", aprobado: false } ]; function agrupar(array) { const aprobados = array .filter(persona => persona.aprobado) .map(persona => persona.nombre); const desaprobados = array .filter(persona => !persona.aprobado) .map(persona => persona.nombre); return { aprobados, desaprobados }; } console.log(agrupar(resultados)); // 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 */