Lección 5 de 24· M02

Hechas: 0/24(0%)

M02L05Semana 2~2.5 h

Ficha M02

L05 — Arrays y métodos esenciales

~2.5 h · Semana 2

Arrays tipados, inmutabilidad práctica y métodos que usarás cada día: map, filter, slice, includes.

Objetivo

Modelar listas de datos sin mutar por accidente y resolver 3 katas centradas en arrays.

Por qué importa

Tu CLI (interfaz de línea de comandos) guardará listas de hábitos y tareas. Casi todo pasa por copiar → transformar → persistir.

Pasos

1. Arrays readonly en espíritu (40 min)

src/arrays/lista.ts:

export type Tarea = { id: string; titulo: string; hecha: boolean };

export function marcarHecha(tareas: Tarea[], id: string): Tarea[] {
  return tareas.map((t) => (t.id === id ? { ...t, hecha: true } : t));
}

export function pendientes(tareas: Tarea[]): Tarea[] {
  return tareas.filter((t) => !t.hecha);
}

2. Métodos de consulta (30 min)

src/arrays/estadisticas.ts: suma, promedio, maximo sobre number[] con validación de array vacío (null o throw — elige y documenta).

3. Tres katas arrays (55 min)

Ej.: rotar array, eliminar duplicados, intersección de dos listas pequeñas.

4. Lectura (25 min)

EJ cap. 4 hasta objetos/arrays básicos.

Lectura de esta lección

Fuente Qué leer
Eloquent JavaScript Cap. 4 (inicio)
TS Handbook Everyday Types — Arrays
Catálogo Bibliografía · M02

Hecho cuando

  1. marcarHecha no muta el array original (prueba con const antes = [...] y compara).
  2. Tres katas nuevas en src/katas/.
  3. ≥10 katas totales en el repo o documentas cuántas faltan para P1.

Errores comunes

  • Mutar con .sort() sin copiar antes.
  • array[i] sin comprobar límites en funciones públicas.
  • Tipar arrays como any[].

Siguiente

L06 — Objetos, interfaces y tipos

←→