forked from marquez.juan/clase-7-arrays-funciones-objetos
147 lines
4.3 KiB
JavaScript
147 lines
4.3 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];
|
|
// Resultado esperado: [4, 16, 36, 64]
|
|
function numerosPares(numero) {
|
|
return numero % 2 === 0
|
|
}
|
|
const nPar = numeros.filter(numerosPares);
|
|
console.log(nPar);
|
|
|
|
function duplicar(nPar) {
|
|
return nPar * nPar;
|
|
}
|
|
|
|
const nDup = nPar.map(duplicar);
|
|
console.log(nDup);
|
|
|
|
/*
|
|
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 }
|
|
];
|
|
// Resultado esperado: ["Teclado", "Mouse"]
|
|
// Pista: se puede resolver encadenando `filter` y `map`.
|
|
|
|
const resultado = productos.filter(p => p.precio < 1000).map(p => p.nombre);
|
|
console.log(resultado);
|
|
|
|
|
|
/*
|
|
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({nombrePersona, edad, ciudad}) {
|
|
console.log(`${nombrePersona} tiene ${edad} años y vive en ${ciudad}`);
|
|
}
|
|
describir({nombrePersona: "Bruno", edad: 20, 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 }
|
|
];
|
|
// Resultado esperado: 78.75
|
|
|
|
const notas = estudiantes.map(N => N.nota);
|
|
let sumaNotas = 0;
|
|
for (let NE = 0; NE < notas.length; NE++) {
|
|
sumaNotas += notas[NE];
|
|
}
|
|
const promedio = sumaNotas / estudiantes.length;
|
|
console.log(promedio);
|
|
|
|
/*
|
|
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 }
|
|
];
|
|
// Buscar "Luis" → mostrar sus datos
|
|
// Buscar "Pedro" → mostrar "Usuario no encontrado"
|
|
|
|
function buscarUsuario(nombreUsuario) {
|
|
const usuario = usuarios.find(u => u.nombre === nombreUsuario);
|
|
|
|
if (usuario) {
|
|
console.log(usuario);
|
|
} else {
|
|
console.log("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"]
|
|
|
|
const palabra4Letras = palabras.filter(palabra => palabra.length > 4).map(palabra => palabra.toUpperCase());
|
|
console.log(palabra4Letras);
|
|
// 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(resultados) {
|
|
const aprobados = resultados.filter(apr => apr.aprobado === true).map(apr => apr.nombre);
|
|
const desaprobados = resultados.filter(apr => apr.aprobado === false).map(apr => apr.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
|
|
*/
|