TechLead

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