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

Pergamino de Colecciones