Arrays
Objetos tipo lista y metodos comunes
Arrays en JavaScript
Los arrays son colecciones ordenadas de valores. Pueden contener cualquier tipo de dato y son dinamicos (pueden crecer o reducirse).
Creando Arrays
// Literal de array (preferido)
const frutas = ["manzana", "banana", "cereza"];
// Constructor Array (menos comun)
const numeros = new Array(1, 2, 3);
// Array vacio
const vacio = [];
// Array con tipos mixtos
const mixto = [1, "dos", true, null, { nombre: "Ana" }];
Accediendo a Elementos
const frutas = ["manzana", "banana", "cereza"];
console.log(frutas[0]); // "manzana" (primer elemento)
console.log(frutas[2]); // "cereza" (tercer elemento)
console.log(frutas[-1]); // undefined (no funciona como en Python)
// Ultimo elemento
console.log(frutas[frutas.length - 1]); // "cereza"
console.log(frutas.at(-1)); // "cereza" (ES2022)
Metodos Mutadores (Modifican el Array)
const frutas = ["manzana", "banana"];
// Agregar al final
frutas.push("cereza"); // ["manzana", "banana", "cereza"]
// Agregar al inicio
frutas.unshift("fresa"); // ["fresa", "manzana", "banana", "cereza"]
// Eliminar del final
const ultimo = frutas.pop(); // "cereza"
// Eliminar del inicio
const primero = frutas.shift(); // "fresa"
// Eliminar/insertar en posicion
frutas.splice(1, 1); // Elimina 1 elemento en indice 1
frutas.splice(1, 0, "kiwi"); // Inserta "kiwi" en indice 1
// Invertir
frutas.reverse();
// Ordenar
frutas.sort();
Metodos No Mutadores (Retornan Nuevo Array)
const numeros = [1, 2, 3, 4, 5];
// map - transforma cada elemento
const dobles = numeros.map(n => n * 2);
// [2, 4, 6, 8, 10]
// filter - filtra elementos
const pares = numeros.filter(n => n % 2 === 0);
// [2, 4]
// find - encuentra primer elemento que cumple condicion
const mayorQueTres = numeros.find(n => n > 3);
// 4
// findIndex - indice del primer elemento
const indice = numeros.findIndex(n => n > 3);
// 3
// some - al menos uno cumple?
const hayPares = numeros.some(n => n % 2 === 0);
// true
// every - todos cumplen?
const todosPares = numeros.every(n => n % 2 === 0);
// false
// reduce - acumula valores
const suma = numeros.reduce((acc, n) => acc + n, 0);
// 15
// slice - extrae porcion
const porcion = numeros.slice(1, 4);
// [2, 3, 4]
// concat - combina arrays
const combinado = numeros.concat([6, 7]);
// [1, 2, 3, 4, 5, 6, 7]
Spread y Destructuring
// Spread operator (...)
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinado = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]
// Copiar array
const copia = [...arr1];
// Destructuring
const [primero, segundo, ...resto] = [1, 2, 3, 4, 5];
console.log(primero); // 1
console.log(segundo); // 2
console.log(resto); // [3, 4, 5]
// Intercambiar valores
let a = 1, b = 2;
[a, b] = [b, a]; // a = 2, b = 1