Files
clase-7-arrays-funciones-ob…/README.md
2026-05-02 13:12:08 -03:00

103 lines
3.8 KiB
Markdown

# Clase 7: Arrays, objetos y funciones útiles en javascript
## Ejercicios propuestos
0. Seguir los pasos habituales para gestionar con git estos ejercicios:
- Hacer un fork de este repositorio (el que tiene `marquez.juan` en la URL)
- Clonar **tu fork**. (No debería figurar `marquez.juan` en la URL).
- Crear una nueva rama con `switch -c nombre-de-tu-rama`
- Hacer `git push origin nombre-de-tu-rama`
- Desde gitea, crear el pull request, desde la rama recién creada de tu fork
hacia la rama `main` del repositorio que pertenece a `marquez.juan`. De esta
manera el docente puede ir siguiendo tu trabajo y respondiendo las consultas
más fácilmente.
- Comenzar a resolver los ejercicios, en el archivo `ejercicios.js`.
- Hacer al menos un commit por cada uno de los ejercicios que siguen.
- Al finalizar cada sesión de trabajo, hacer `git push origin
nombre-de-tu-rama`
1. Dado el siguiente array, usar `filter` para obtener solo los números pares, y
luego `map` para elevarlos al cuadrado.
```js
const numeros = [1, 2, 3, 4, 5, 6, 7, 8];
// 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.
```js
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`.
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.
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.
```js
const estudiantes = [
{ nombre: "Ana", nota: 88 },
{ nombre: "Luis", nota: 72 },
{ nombre: "Marta", nota: 95 },
{ nombre: "Carlos", nota: 60 }
];
// 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.
```js
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"
```
6. Dado el siguiente array, construir un nuevo array que contenga solo las
palabras con más de 4 letras, convertidas a mayúsculas.
```js
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.
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.
```js
const resultados = [
{ nombre: "Ana", aprobado: true },
{ nombre: "Luis", aprobado: false },
{ nombre: "Marta", aprobado: true },
{ nombre: "Carlos", aprobado: false }
];
// 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.
```js
const sumarDiez = crearSumador(10);
console.log(sumarDiez(5)); // 15
console.log(sumarDiez(20)); // 30
```