forked from marquez.juan/clase-7-arrays-funciones-objetos
Compare commits
9 Commits
main
...
40d3078df6
| Author | SHA1 | Date | |
|---|---|---|---|
| 40d3078df6 | |||
| 6ff5b92497 | |||
| 116bac5e45 | |||
| fbe9690854 | |||
| e08c7317ea | |||
| 68495cc71e | |||
| 731c8953a9 | |||
| c1b1290bac | |||
| 68ba5a27ea |
120
ejercicios.js
120
ejercicios.js
@@ -10,7 +10,23 @@ console.log("Archivo vinculado correctamente.");
|
|||||||
const numeros = [1, 2, 3, 4, 5, 6, 7, 8];
|
const numeros = [1, 2, 3, 4, 5, 6, 7, 8];
|
||||||
// Resultado esperado: [4, 16, 36, 64]
|
// Resultado esperado: [4, 16, 36, 64]
|
||||||
|
|
||||||
|
//función para filtrar pares
|
||||||
|
function esPar(numero) {
|
||||||
|
return numero % 2 === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//función para elevar al cuadrado
|
||||||
|
function alCuadrado(numero) {
|
||||||
|
return numero * numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
//filter
|
||||||
|
const pares = numeros.filter(esPar);
|
||||||
|
|
||||||
|
//map
|
||||||
|
const resultado = pares.map(alCuadrado);
|
||||||
|
|
||||||
|
console.log(resultado);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -27,7 +43,15 @@ const productos = [
|
|||||||
// Resultado esperado: ["Teclado", "Mouse"]
|
// Resultado esperado: ["Teclado", "Mouse"]
|
||||||
// Pista: se puede resolver encadenando `filter` y `map`.
|
// Pista: se puede resolver encadenando `filter` y `map`.
|
||||||
|
|
||||||
|
const nombresProductosBaratos = productos
|
||||||
|
.filter(function (producto) {
|
||||||
|
return producto.precio < 1000;
|
||||||
|
})
|
||||||
|
.map(function (producto) {
|
||||||
|
return producto.nombre;
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(nombresProductosBaratos);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
3. Escribir una función `describir` que reciba un objeto persona con las
|
3. Escribir una función `describir` que reciba un objeto persona con las
|
||||||
@@ -36,6 +60,12 @@ const productos = [
|
|||||||
parámetros de la función.
|
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
|
4. Dado el siguiente array de estudiantes, calcular el promedio general de notas
|
||||||
@@ -50,6 +80,22 @@ const estudiantes = [
|
|||||||
];
|
];
|
||||||
// Resultado esperado: 78.75
|
// Resultado esperado: 78.75
|
||||||
|
|
||||||
|
// extraigo las notas usando map y callback
|
||||||
|
const notas = estudiantes.map(function (estudiante) {
|
||||||
|
return estudiante.nota;
|
||||||
|
});
|
||||||
|
|
||||||
|
//sumo las notas usando un loop
|
||||||
|
let suma = 0;
|
||||||
|
for (const nota of notas) {
|
||||||
|
suma += nota;
|
||||||
|
}
|
||||||
|
|
||||||
|
// calculo el promedio general
|
||||||
|
const promedio = suma / notas.length;
|
||||||
|
|
||||||
|
console.log(promedio);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
5. Usar `find` para buscar un usuario por nombre dentro de un array, y mostrar
|
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.
|
en consola un mensaje diferente según si se encontró o no.
|
||||||
@@ -62,6 +108,29 @@ const usuarios = [
|
|||||||
// Buscar "Luis" → mostrar sus datos
|
// Buscar "Luis" → mostrar sus datos
|
||||||
// Buscar "Pedro" → mostrar "Usuario no encontrado"
|
// Buscar "Pedro" → mostrar "Usuario no encontrado"
|
||||||
|
|
||||||
|
// creo una función auxiliar para probar con distintos nombres sin repetir código
|
||||||
|
function buscarYMostrarUsuario(nombreABuscar) {
|
||||||
|
// uso find con una función anónima
|
||||||
|
const usuarioEncontrado = usuarios.find(function (usuario) {
|
||||||
|
return usuario.nombre === nombreABuscar;
|
||||||
|
});
|
||||||
|
|
||||||
|
// verifico si find encontró algo o si retornó undefined
|
||||||
|
if (usuarioEncontrado !== undefined) {
|
||||||
|
console.log(usuarioEncontrado);
|
||||||
|
} else {
|
||||||
|
console.log("Usuario no encontrado");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buscar "Luis" → mostrar sus datos
|
||||||
|
buscarYMostrarUsuario("Luis");
|
||||||
|
// Resultado en consola: { nombre: 'Luis', activa: false }
|
||||||
|
|
||||||
|
// Buscar "Pedro" → mostrar "Usuario no encontrado"
|
||||||
|
buscarYMostrarUsuario("Pedro");
|
||||||
|
// Resultado en consola: "Usuario no encontrado"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
6. Dado el siguiente array, construir un nuevo array que contenga solo las
|
6. Dado el siguiente array, construir un nuevo array que contenga solo las
|
||||||
palabras con más de 4 letras, convertidas a mayúsculas.
|
palabras con más de 4 letras, convertidas a mayúsculas.
|
||||||
@@ -73,6 +142,16 @@ const palabras = ["sol", "tormenta", "mar", "lluvia", "río", "arcoíris"];
|
|||||||
// Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()`
|
// Pistas: `palabra.length` da la cantidad de letras. `palabra.toUpperCase()`
|
||||||
// convierte a mayúsculas.
|
// convierte a mayúsculas.
|
||||||
|
|
||||||
|
const palabrasFiltradasYMayusculas = palabras
|
||||||
|
.filter(function (palabra) {
|
||||||
|
return palabra.length > 4;
|
||||||
|
})
|
||||||
|
.map(function (palabra) {
|
||||||
|
return palabra.toUpperCase();
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(palabrasFiltradasYMayusculas);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
7. Escribir una función `agrupar` que reciba un array de objetos con la forma
|
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`
|
`{ nombre, aprobado }` y retorne un objeto con dos propiedades: `aprobados`
|
||||||
@@ -91,6 +170,34 @@ const resultados = [
|
|||||||
// desaprobados: ["Luis", "Carlos"]
|
// desaprobados: ["Luis", "Carlos"]
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
function agrupar(listaResultados) {
|
||||||
|
// filtro y extraigo los nombres de los aprobados
|
||||||
|
const listaAprobados = listaResultados
|
||||||
|
.filter(function (estudiante) {
|
||||||
|
return estudiante.aprobado === true;
|
||||||
|
})
|
||||||
|
.map(function (estudiante) {
|
||||||
|
return estudiante.nombre;
|
||||||
|
});
|
||||||
|
|
||||||
|
// filtro y extraigo los nombres de los desaprobados
|
||||||
|
const listaDesaprobados = listaResultados
|
||||||
|
.filter(function (estudiante) {
|
||||||
|
return estudiante.aprobado === false;
|
||||||
|
})
|
||||||
|
.map(function (estudiante) {
|
||||||
|
return estudiante.nombre;
|
||||||
|
});
|
||||||
|
|
||||||
|
// retorno el objeto con ambas listas
|
||||||
|
return {
|
||||||
|
aprobados: listaAprobados,
|
||||||
|
desaprobados: listaDesaprobados
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(agrupar(resultados));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
8. *(Opcional - closures)* Escribir una función `crearSumador` que reciba un
|
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,
|
número `base` y retorne una función que, al llamarla con otro número,
|
||||||
@@ -100,3 +207,16 @@ const sumarDiez = crearSumador(10);
|
|||||||
console.log(sumarDiez(5)); // 15
|
console.log(sumarDiez(5)); // 15
|
||||||
console.log(sumarDiez(20)); // 30
|
console.log(sumarDiez(20)); // 30
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
function crearSumador(base) {
|
||||||
|
// retorno una nueva función tradicional anónima
|
||||||
|
return function (otroNumero) {
|
||||||
|
// esta función recuerda el valor de la variable 'base'
|
||||||
|
return base + otroNumero;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// ejemplo de uso
|
||||||
|
const sumarDiez = crearSumador(10);
|
||||||
|
console.log(sumarDiez(5)); // 15
|
||||||
|
console.log(sumarDiez(20)); // 30
|
||||||
|
|||||||
@@ -10,6 +10,6 @@
|
|||||||
<p>Vincular el archivo ejercicios.js a este archivo. Luego, resolver ahí
|
<p>Vincular el archivo ejercicios.js a este archivo. Luego, resolver ahí
|
||||||
los ejercicios.</p>
|
los ejercicios.</p>
|
||||||
|
|
||||||
|
<script src="ejercicios.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user