Arrays y Objetos
🎯 Objetivo
Manejar arrays (listas) y objetos (estructuras). Métodos map, filter, reduce.
⚔️ Implementación
// ARRAYS
const ninjas = ["Naruto", "Sasuke", "Sakura"];
// Acceso
console.log(ninjas[0]); // "Naruto"
console.log(ninjas.length); // 3
// Métodos
ninjas.push("Kakashi"); // Agrega al final
ninjas.pop(); // Elimina último
ninjas.unshift("Itachi"); // Agrega al inicio
ninjas.shift(); // Elimina primero
// Map (transforma cada elemento)
const mayusculas = ninjas.map(n => n.toUpperCase());
// ["NARUTO", "SASUKE", "SAKURA"]
// Filter (filtra elementos)
const conS = ninjas.filter(n => n.startsWith("S"));
// ["Sasuke", "Sakura"]
// Reduce (acumula)
const numeros = [1, 2, 3, 4];
const suma = numeros.reduce((acc, n) => acc + n, 0); // 10
// Find
const encontrado = ninjas.find(n => n === "Sasuke"); // "Sasuke"
// OBJETOS
const ninja = {
nombre: "Naruto",
edad: 17,
aldea: "Konoha",
habilidades: ["Rasengan", "Kage Bunshin"]
};
// Acceso
console.log(ninja.nombre); // "Naruto"
console.log(ninja["edad"]); // 17
// Agregar/modificar
ninja.rango = "Genin";
ninja.edad = 18;
// Métodos
console.log(Object.keys(ninja)); // ["nombre", "edad", ...]
console.log(Object.values(ninja)); // ["Naruto", 17, ...]
// Destructuring
const {nombre, edad} = ninja;
console.log(nombre); // "Naruto"
// Spread
const copia = {...ninja, aldea: "Suna"};
🎯 Reto Ninja
MISIÓN DE COLECCIONES
🍱 El Banquete de Datos
1
Crea una constante llamada equipo que contenga un array de 5 objetos (ninjas).
2
Cada objeto debe tener las propiedades nombre (string) y xp (number).
3
Usa .filter() para obtener solo los ninjas con xp > 100.
4
Aplica .map() para obtener un array final que solo contenga los nombres de esos ninjas.
5
Muestra el resultado en la consola. ¡Buen provecho!
🔓 Bonus
// Some/Every
const numeros = [1, 2, 3, 4];
numeros.some(n => n > 3); // true (al menos uno)
numeros.every(n => n > 0); // true (todos)
// Sort
const ordenado = ninjas.sort((a, b) => a.localeCompare(b));
✅ Checklist de Dominio
ESTRUCTURAS DOMINADAS