Capítulo 6: Búsqueda y Transformación Avanzada
Este capítulo aborda técnicas avanzadas para buscar, transformar y reorganizar datos complejos.
6.1. Búsquedas Complejas: Filtrar y Mapear Juntos
let usuarios = [
{ id: 1, nombre: "Juan", edad: 30, activo: true, rol: "admin" },
{ id: 2, nombre: "María", edad: 25, activo: false, rol: "user" },
{ id: 3, nombre: "Carlos", edad: 35, activo: true, rol: "user" },
{ id: 4, nombre: "Ana", edad: 22, activo: true, rol: "admin" }
];
// Obtener nombres de usuarios activos mayores de 25
let resultado = usuarios
.filter(u => u.activo && u.edad > 25)
.map(u => u.nombre);
console.log(resultado); // ["Juan", "Carlos"]6.2. Transformar Arrays de Objetos
let productos = [
{ id: 1, nombre: "Laptop", precio: 1000, stock: 5 },
{ id: 2, nombre: "Mouse", precio: 20, stock: 50 }
];
// Crear vista simplificada
let resumen = productos.map(p => ({
id: p.id,
titulo: p.nombre.toUpperCase(),
disponible: p.stock > 0
}));
console.log(resumen);
// [{id: 1, titulo: "LAPTOP", disponible: true}, ...]
// Agregar IVA
let conIVA = productos.map(p => ({
...p,
precioConIVA: p.precio * 1.21
}));6.3. Agrupar Datos
6.4. Ordenar Arrays de Objetos
6.5. Buscar en Arrays Anidados
6.6. Casos Prácticos: Datos desde APIs
6.7. Composición de Funciones
6.8. Casos Extremos y Edge Cases
Resumen del Capítulo
Las técnicas avanzadas permiten trabajar con datos complejos de manera elegante. Dominar composición, transformación y búsqueda es esencial para programación profesional.
💡 Conceptos Clave:
Encadenamiento: Combinar filter, map, reduce
Transformación: Crear nuevas estructuras desde datos
Agrupación: Reorganizar datos con reduce
Ordenamiento: Múltiples criterios
Composición: Reutilizar funciones
Edge cases: Manejar datos extremos
APIs: Procesar respuestas reales
🤔 Preguntas de Reflexión:
¿Cómo agruparías datos por categoría usando reduce()?
¿Cuál es la ventaja de la composición de funciones?
¿Cómo manejarías arrays con valores null/undefined?
Diseña una función que transforme datos de API complejos.
¿Cuándo es mejor usar sort() vs crear un nuevo array ordenado?
Última actualización
¿Te fue útil?