Saltar a contenido

Data structures

Resumen de ideas fundamentales:

Estructura Características clave Ejemplo de código Claves permitidas Casos de uso preferente Diferencias clave
Object - Almacena pares clave-valor.
- Claves solo pueden ser strings o symbols.
- No mantiene el orden de inserción (salvo en números).
js const obj = { key: "value", 42: "number key" }; console.log(obj.key); Strings, Symbols Cuando las claves son strings conocidas de antemano y se necesita acceso rápido. No es iterable con for...of. Se accede con obj.key o obj["key"].
Array - Colección ordenada de valores.
- Accesible por índice numérico.
- Métodos útiles como .push(), .map(), .filter().
js const arr = [1, 2, 3]; console.log(arr[0]); Índices numéricos Listas ordenadas de elementos cuando el orden y la posición son importantes. Mantiene orden de inserción. Es iterable con for...of.
Map - Pares clave-valor, pero las claves pueden ser cualquier tipo.
- Mantiene el orden de inserción.
js const map = new Map(); map.set("key", 42); console.log(map.get("key")); Cualquier tipo de dato (incluyendo objetos y funciones) Cuando se necesita eficiencia en búsquedas y las claves pueden ser de cualquier tipo. Mejor rendimiento que Object para grandes conjuntos de datos.
Set - Colección de valores únicos (no pares clave-valor).
- No permite duplicados.
- Mantiene el orden de inserción.
js const set = new Set([1, 2, 3, 3]); console.log(set.has(2)); No tiene claves, solo valores únicos. Cuando se necesita una lista sin duplicados o verificar rápidamente si un valor está presente. No permite acceso por índice como un Array.

Funciones .map, .filter .forEach

Método Descripción Ejemplo de código Valor de retorno Casos de uso Diferencias clave
.map() Crea un nuevo array aplicando una función a cada elemento del array original. js const nums = [1, 2, 3]; const doubled = nums.map(n => n * 2); console.log(doubled); // [2, 4, 6] Nuevo array transformado Cuando se necesita transformar cada elemento y devolver un nuevo array. No modifica el array original. Siempre devuelve un array nuevo.
.filter() Crea un nuevo array con los elementos que cumplen una condición. js const nums = [1, 2, 3, 4]; const evens = nums.filter(n => n % 2 === 0); console.log(evens); // [2, 4] Nuevo array con elementos filtrados Cuando se necesita extraer elementos específicos de un array. No modifica el array original. Devuelve solo los elementos que cumplen la condición.
.forEach() Ejecuta una función para cada elemento del array sin devolver un nuevo array. js const nums = [1, 2, 3]; nums.forEach(n => console.log(n * 2)); undefined (no devuelve nada) Cuando se necesita ejecutar una acción en cada elemento sin crear un nuevo array. No devuelve un array, solo itera sobre los elementos. Modifica el array si se hacen cambios dentro de la función.

🏆 Spread y Rest Operator en JavaScript

🔹 Spread Operator (...)

El operador spread se usa para hacer copias y combinaciones de arrays y objetos sin modificar los originales. Su función principal es expandir los elementos de un iterable en un nuevo contexto.

✨ Ejemplo: Copiar y combinar arrays

Text Only
1
2
3
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // Copia y agrega elementos
console.log(arr2); // [1, 2, 3, 4, 5]

También funciona con objetos:

Text Only
1
2
3
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // Copia y agrega nuevas propiedades
console.log(obj2); // { a: 1, b: 2, c: 3 }

🔹 Rest Operator (...)

El operador rest permite agrupar múltiples valores en una única variable. Es útil en funciones cuando no se conoce de antemano la cantidad de argumentos que se recibirán. También se usa en destructuración para dividir un array u objeto en partes.

✨ Ejemplo en funciones

Text Only
1
2
3
4
function sumar(...numeros) {
return numeros.reduce((acc, num) => acc + num, 0);
}
console.log(sumar(1, 2, 3, 4)); // 10

✨ Ejemplo en destructuración de arrays

Text Only
1
2
3
const [primero, ...resto] = [10, 20, 30, 40];
console.log(primero); // 10
console.log(resto);   // [20, 30, 40]

En objetos, el operador rest permite separar algunas propiedades y agrupar el resto en un nuevo objeto: const { a, ...resto } = { a: 1, b: 2, c: 3 }; console.log(a); // 1 console.log(resto); // { b: 2, c: 3 }