Utilidades:
- Object.entries()
- Metodos de Array
- lodash.KeyBy
Desventajas:
- Se debe serializar y deserealizar
- Agrega una capa de complejidad
Utilidades para deserealizar:
- Object.values()
- Object.entries()
Introducción
Optimización de JavaScript para grandes datasets en Next.js
Throttling y Debouncing
Optimización con Throttle y Debounce en React
Control de tiempos en JavaScript: Throttle y Debounce en React
Uso de debounce y throttle con LowDash en React
Cache en memoria
Manejo de caché en aplicaciones React con React Query
Optimización de Estructuras de Datos en JavaScript
Memoización
Optimización de listas con memoización en React
Memorización de Componentes en React con React.memo
Scrolling
Ventanas de React para Listas Grandes en JavaScript
Conclusiones
Autenticación Segura en Aplicaciones Web con React
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Optimizar el acceso a los datos en memoria es fundamental para mejorar el rendimiento de nuestras aplicaciones. Una de las razones principales es que los servidores comúnmente retornan datos en listas, lo que puede llevarnos a complejidades algorítmicas elevadas cuando se trata de búsquedas. Cuanto más grande sea una lista, más complejo y lento será encontrar un valor dentro de ella. Esto significa que cuando estamos realizando filtros o búsquedas dentro de grandes datasets, puede ser muy costoso para JavaScript y el navegador.
Cuando trabajamos con listas o arrays y buscamos elementos en ellas, el peor escenario es tener que recorrer todos los elementos hasta encontrar el que buscamos. Este escenario introduce una complejidad algorítmica de O(n), donde n es el número de elementos en la lista. Por lo tanto, si el tamaño de la lista aumenta, también lo hará el tiempo necesario para la búsqueda, haciéndolo aún más costoso.
Los objetos o hashs se presentan como una alternativa eficiente para manejar grandes volúmenes de datos. A diferencia de los arrays, los objetos ofrecen acceso inmediato a sus valores a través de claves, lo que da lugar a una complejidad algorítmica de O(1). Esto significa que acceder a los datos es instantáneo, independientemente del tamaño del dataset.
Transformar arrays en objetos es especialmente útil cuando se trabaja con grandes datasets. Esta conversión facilita y acelera las búsquedas. Se trata de una optimización primaria en bases de datos no relacionales y, en general, una buena práctica para mejorar el rendimiento en nuestras aplicaciones.
Ventajas de los objetos:
Existen varias formas de transformar arrays en objetos en JavaScript. Una de las herramientas más comunes es Object.entries()
, que convierte un objeto en un array de pares clave-valor, permitiendo iterar sobre ellos con facilidad.
Veamos un ejemplo sencillo para entender esta transformación:
const bigList = [
{ id: 1, nombre: 'perro' },
{ id: 2, nombre: 'gato' },
];
// Convertir array a objeto
const objetos = bigList.reduce((acc, item) => {
acc[item.id] = item;
return acc;
}, {});
console.log(objetos);
// { 1: { id: 1, nombre: 'perro' }, 2: { id: 2, nombre: 'gato' } }
Este código utiliza el método reduce()
para construir un nuevo objeto a partir del array dado, permitiendo un acceso más rápido a los elementos a través de sus claves.
Aunque convertir arrays a objetos ofrece significativos beneficios de rendimiento, también introduce un mayor nivel de complejidad en el sistema. Es esencial considerar los siguientes puntos:
Usar esta estrategia es especialmente recomendable cuando:
En resumen, es crucial balancear entre rendimiento y complejidad para asegurar una administración de datos efectiva en nuestras aplicaciones.
Aportes 2
Preguntas 0
Utilidades:
Desventajas:
Utilidades para deserealizar:
Justo encontre un post relacionado a esto https://medium.com/programming-essentials/how-to-find-elements-in-large-arrays-6f337a00b216
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?