diff --git a/ejercicios.js b/ejercicios.js index c12f2d1..de1d305 100644 --- a/ejercicios.js +++ b/ejercicios.js @@ -8,7 +8,12 @@ console.log("Archivo vinculado correctamente."); luego `map` para elevarlos al cuadrado. */ const numeros = [1, 2, 3, 4, 5, 6, 7, 8]; -// Resultado esperado: [4, 16, 36, 64] + +const resultado = numeros + .filter(num => num % 2 === 0) + .map(num => num * num); + +console.log(resultado); @@ -17,13 +22,19 @@ const numeros = [1, 2, 3, 4, 5, 6, 7, 8]; 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 } + { nombre: "Teclado", precio: 800 }, + { nombre: "Monitor", precio: 3500 }, + { nombre: "Mouse", precio: 600 }, + { nombre: "Auriculares", precio: 1200 } ]; + +const baratos = productos + .filter(p => p.precio < 1000) + .map(p => p.nombre); + +console.log(baratos); + // Resultado esperado: ["Teclado", "Mouse"] // Pista: se puede resolver encadenando `filter` y `map`. @@ -35,19 +46,43 @@ const productos = [ `"Ana tiene 25 años y vive en Rosario."` Usar destructuring en los parámetros de la función. */ +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 } + { nombre: "Ana", nota: 88 }, + { nombre: "Luis", nota: 72 }, + { nombre: "Marta", nota: 95 }, + { nombre: "Carlos", nota: 60 } ]; + +// sacar notas +const notas = estudiantes.map(e => e.nota); + +// sumar notas +let suma = 0; + +for (let nota of notas) { + suma += nota; +} + +// promedio +const promedio = suma / notas.length; + +console.log(promedio); // Resultado esperado: 78.75 /* @@ -55,10 +90,28 @@ const estudiantes = [ 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 } + { nombre: "Ana", activa: true }, + { nombre: "Luis", activa: false }, + { nombre: "Marta", activa: true } ]; + +// buscar Luis +const usuario = usuarios.find(u => u.nombre === "Luis"); + +if (usuario) { + console.log(usuario); +} else { + console.log("Usuario no encontrado"); +} + +// buscar Pedro +const usuario2 = usuarios.find(u => u.nombre === "Pedro"); + +if (usuario2) { + console.log(usuario2); +} else { + console.log("Usuario no encontrado"); +} // Buscar "Luis" → mostrar sus datos // Buscar "Pedro" → mostrar "Usuario no encontrado" @@ -66,10 +119,13 @@ const usuarios = [ 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"]; -// Resultado esperado: ["TORMENTA", "LLUVIA", "ARCOÍRIS"] +const resultadoPalabras = palabras + .filter(p => p.length > 4) + .map(p => p.toUpperCase()); + +console.log(resultadoPalabras); // Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()` // convierte a mayúsculas. @@ -78,25 +134,37 @@ const palabras = ["sol", "tormenta", "mar", "lluvia", "río", "arcoíris"]; `{ 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 } + { nombre: "Ana", aprobado: true }, + { nombre: "Luis", aprobado: false }, + { nombre: "Marta", aprobado: true }, + { nombre: "Carlos", aprobado: false } ]; +function agrupar(arr) { + let aprobados = []; + let desaprobados = []; + + for (let persona of arr) { + if (persona.aprobado) { + aprobados.push(persona.nombre); + } else { + desaprobados.push(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 -*/ 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.
- +