diff --git a/tp 7 index.js b/tp 7 index.js new file mode 100644 index 0000000..1acba60 --- /dev/null +++ b/tp 7 index.js @@ -0,0 +1,169 @@ +https://gitea.juansemarquez.com/durso.bruno/clase-7-arrays-funciones-objetos +// 1. Obtener números pares y elevarlos al cuadrado + +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. Obtener nombres de productos menores a $1000 + +const productos = [ + { nombre: "Teclado", precio: 800 }, + { nombre: "Monitor", precio: 3500 }, + { nombre: "Mouse", precio: 600 }, + { nombre: "Auriculares", precio: 1200 } +]; + +const productosBaratos = productos + .filter(producto => producto.precio < 1000) + .map(producto => producto.nombre); + +console.log(productosBaratos); + +// Resultado esperado: ["Teclado", "Mouse"] + +// 3. Función describir usando destructuring + +function describir({ nombre, edad, ciudad }) { + return `${nombre} tiene ${edad} años y vive en ${ciudad}.`; +} + +const persona = { + nombre: "Ana", + edad: 25, + ciudad: "Rosario" +}; + +console.log(describir(persona)); + +// Resultado esperado: +// "Ana tiene 25 años y vive en Rosario." + +// 4. Calcular promedio general de notas + +const estudiantes = [ + { nombre: "Ana", nota: 88 }, + { nombre: "Luis", nota: 72 }, + { nombre: "Marta", nota: 95 }, + { nombre: "Carlos", nota: 60 } +]; + +// Extraer notas con map +const notas = estudiantes.map(estudiante => estudiante.nota); + +// Sumar notas con un loop +let suma = 0; + +for (let nota of notas) { + suma += nota; +} + +// Calcular promedio +const promedio = suma / notas.length; + +console.log(promedio); + +// Resultado esperado: 78.75 + +// 5. Buscar usuario con find + +const usuarios = [ + { nombre: "Ana", activa: true }, + { nombre: "Luis", activa: false }, + { nombre: "Marta", activa: true } +]; + +// Buscar usuario +const usuarioBuscado = usuarios.find( + usuario => usuario.nombre === "Luis" +); + +if (usuarioBuscado) { + console.log(usuarioBuscado); +} else { + console.log("Usuario no encontrado"); +} + + +// Buscar otro usuario +const otroUsuario = usuarios.find( + usuario => usuario.nombre === "Pedro" +); + +if (otroUsuario) { + console.log(otroUsuario); +} else { + console.log("Usuario no encontrado"); +} + +// 6. Palabras con más de 4 letras en 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"] + +// 7. Función agrupar + +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. Crear función sumadora (Closure) + +function crearSumador(base) { + + return function(numero) { + return base + numero; + }; + +} + +const sumarDiez = crearSumador(10); + +console.log(sumarDiez(5)); // 15 +console.log(sumarDiez(20)); // 30 \ No newline at end of file