Files
clase-7-arrays-funciones-ob…/clase-7-arrays-funciones-objetos/ejercicios.js
jose27124@gmial.com 5b6ab555dc Listo ejercicio 7 y 8
2026-05-11 11:25:11 -03:00

160 lines
4.5 KiB
JavaScript

// 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];
const pares = numeros.filter(numeros =>{
return numeros % 2 === 0;
} );
const resultado = pares.map(pares =>{
return pares ** 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.
*/
const productos = [
{ nombre: "Teclado", precio: 800 },
{ nombre: "Monitor", precio: 3500 },
{ nombre: "Mouse", precio: 600 },
{ nombre: "Auriculares", precio: 1200 }
];
const nombresBaratos = productos
.filter(producto => producto.precio < 1000)
.map(producto => producto.nombre);
console.log(nombresBaratos);
// 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.
*/
const persona = {
nombre : "Ana",
edad : 25,
ciudad : "Rosario"
};
function describir({nombre, edad, ciudad}){
return `${nombre} tiene ${edad} años y vive en ${ciudad}.`;
}
console.log (describir(persona));
/*
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 notas = estudiantes.map(estudiante => estudiante.nota);
let suma = 0;
for (let i = 0; i < notas.length; i++){
suma += notas[i];
}
const promedio = suma / notas.length;
console.log(promedio);
console.log("Notas extraídas:", notas);
console.log("Promedio general:", promedio);
// 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 }
];
function buscarUsuario(nombre) {
const usuario = usuarios.find(usuario => usuario.nombre === nombre);}
if (usario){
console.log(`Usuario encontrado: ${usuario.nombre}, Activa: ${usuario.activa}`);
} 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"];
// Resultado esperado: ["TORMENTA", "LLUVIA", "ARCOÍRIS"]
// Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()`
// convierte a mayúsculas.
const palabrasLargas = palabras . filter (palabra => palabra.length > 4)
.map(palabra => palabra.toUpperCase());
console.log(palabrasLargas);
/*
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(resultados){
const agrupados = {
aprobados: [],
desaprobados: []
}
};
resultados.forEach(resultado =>{
if (resultado.aprobado){
agrupados.aprobados.push(resultado.nombre);
} else{
agrupados.desaprobados.push(resultado.nombre);
}
});
return agrupados;
// 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
*/
function crearSumador(base){
return function (numero){
return base + numero;
};
}