Tratar y trabajar con datos es lo principal
que hacemos como desarrolladores.
Y esa es la razón por la cual,
desde el comienzo del curso,
nosotros hemos estado trabajando
con estructuras de datos integradas en JavaScript,
como arreglos y objetos.
Luego, en las últimas conferencias
aprendimos sobre dos nuevas estructuras de datos
que son conjuntos y objetos.
Así que ahora tenemos cuatro estructuras de datos
entre los que podemos elegir.
Y entonces decidí crear esta conferencia rápida
que le mostrará los pros y los contras de cada estructura de datos
y también cuándo elegir cada uno de ellos.
Y quiero comenzar este video categorizando rápidamente
de dónde pueden provenir realmente los datos.
Así que hay esencialmente tres fuentes de datos.
En primer lugar, los datos se pueden escribir
dentro del propio código fuente del programa como mensajes de estado
que se mostrará en una página web en función de las acciones del usuario.
En segundo lugar, los datos pueden provenir de la interfaz de usuario.
Así que desde la página web,
pueden ser datos que el usuario ingresa en algún formulario
o prueba de datos ya escrita de alguna manera en el DOM.
Por ejemplo, estas pueden ser las tareas de los usuarios en una aplicación de tareas pendientes.
o gastos en una aplicación de presupuesto o algo por el estilo.
Finalmente, los datos pueden provenir de fuentes externas
que suele ser una API web.
Ahora, ¿qué es una API web?
Bueno, API significa Interfaz de programación de aplicaciones.
y básicamente podemos usar una API web para obtener datos
de otras aplicaciones web.
Por ejemplo podemos usar una API web
para obtener el clima actual en cualquier ciudad o datos sobre películas
o tasas de conversión de moneda
y realmente todo tipo de datos que puedas imaginar.
Y aprenderemos cómo funciona todo eso más adelante en el curso.
Así que no importa de dónde vengan los datos
y qué tipo de datos son,
normalmente siempre tenemos colecciones de datos
que luego necesitamos almacenar en algún lugar.
Entonces, ¿dónde almacenamos colecciones de datos?
Así es, usamos estructuras de datos, pero como sabes
Hay cuatro estructuras de datos integradas en JavaScript.
Y ahora necesitamos una forma de decidir entre ellos,
pero no es tan dificil
Así que la primera decisión es esta
¿Solo necesitamos una lista simple de valores?
Si es así, usaremos una matriz o un conjunto.
Pero, por otro lado, si necesitamos pares de valores clave,
entonces necesitamos un objeto o un mapa.
Entonces, la gran diferencia aquí es que con un par de valores clave
tenemos una manera de describir los valores, entonces usando la clave.
Por otro lado, en una lista como una matriz o un conjunto,
simplemente tenemos los valores sin ninguna descripción, ¿de acuerdo?
Ahora, como un ejemplo rápido,
volvamos a obtener datos de una API web
porque en las aplicaciones JavaScript modernas
esa suele ser la fuente de datos más común.
Por lo tanto, los datos de las API web generalmente vienen en un formato de datos especial
llamado JSON que se parece a este ejemplo aquí.
Entonces, JSON es esencialmente solo texto, por lo que es una cadena larga,
pero se puede convertir fácilmente en objetos de JavaScript
porque usa el mismo formato
como objetos y matrices de JavaScript.
Así que aquí tenemos tres objetos que describen recetas.
Tenemos los valores en verde, como el título y una editorial.
Y tiene completo sentido
que estos valores se describen luego usando una clave.
De lo contrario no tendríamos idea
cuáles son los diferentes valores en realidad, ¿verdad?
Entonces, los pares de valores clave son esenciales aquí.
y es por eso que estos datos se almacenan en un objeto,
no una matriz.
Ahora, cada uno de estos objetos de receta en sí mismo
puede ser visto como un valor.
Y como tenemos muchos de ellos,
significa que tenemos nuevamente una colección de datos
y por lo tanto necesitamos una estructura de datos para almacenarlos.
Ahora, ¿queremos describir cada uno de los objetos?
Bueno, no es realmente necesario, ¿verdad?
Ya sabemos que son todas recetas.
y cualquier información que necesitemos sobre las recetas
ya está almacenado en cada uno de los objetos.
Así que todo lo que queremos es básicamente una lista simple
donde se mantienen juntas todas las recetas.
Y aquí una matriz es la estructura de datos perfecta para la deuda.
Y, de hecho, crear una matriz de objetos
es extremadamente común en JavaScript.
Ahora trabajará con este tipo de datos todo el tiempo.
como desarrollador profesional de JavaScript.
Y es por eso que estoy poniendo tanto énfasis en esto aquí.
Bien, ahora antes de pasar a comparar arreglos, conjuntos,
objetos y mapas, quiero mencionar rápidamente
que también hay Debilidades
y estructuras de datos WeakMaps en JavaScript.
Además, hay aún más estructuras de datos
que se utilizan en la programación,
pero que no están integrados en JavaScript.
Y solo por mencionar algunos,
pueden ser pilas, colas, listas enlazadas, árboles,
o tablas hash.
Y estos realmente no importan por ahora
pero aún así solo quería que supieras
que hay más que solo
las cuatro estructuras de datos integradas.
Pero ahora hablemos un poco más
sobre las estructuras de datos integradas.
Así que ya sabes a estas alturas cómo usarlas todas,
pero es importante saber cuándo usarlos.
Entonces, comenzando con arreglos versus conjuntos, ya sabemos
que deberíamos usarlos para listas simples de valores
cuando no necesitamos describir los valores.
Ahora debe usar matrices cada vez que necesite almacenar valores
en orden y cuándo estos valores pueden contener duplicados.
Además, siempre debes usar matrices.
cuando necesitas manipular datos
porque hay un montón de métodos de matriz útiles.
Ahora los conjuntos, por otro lado, solo deben usarse
cuando se trabaja con valores únicos,
además de eso también puedes usar conjuntos en situaciones
cuando el alto rendimiento es realmente importante
porque operaciones como buscar un artículo
o eliminar un elemento de un conjunto puede ser
hasta 10 veces más rápido en conjuntos que en arreglos.
Ahora un gran caso de uso para conjuntos
es eliminar valores duplicados de una matriz
como ya lo hicimos antes.
Entonces, los conjuntos realmente no están destinados a reemplazar matrices
sino más bien para felicitarlos
siempre que se trate de valores únicos.
Bien, ahora hablemos de objetos versus mapas.
y ya sabemos que debemos
use estas estructuras de datos de valor clave
siempre que necesitemos describir los valores usando claves, ¿verdad?
Pero cuándo usar objetos y cuándo usar mapas.
Bueno, los objetos han sido
la estructura tradicional de datos de valor clave
simplemente porque no teníamos mapas antes de ES6,
pero usando objetos simplemente como almacenes de valor clave
tiene un par de desventajas técnicas.
Y es por eso que algunas personas dicen
que hemos estado abusando de los objetos para esto.
Ahora los mapas, por otro lado, se adaptan mucho mejor
para almacenes de valores clave simples
porque ofrecen un mejor rendimiento de hecho.
También las claves de mapa pueden tener cualquier tipo de datos.
y también son fáciles de iterar
y es fácil calcular el tamaño de un mapa.
Sin embargo, la mayor ventaja de los objetos
es probablemente lo fácil que es escribirlos y acceder a los datos
simplemente usando el punto o el operador de corchetes.
Además, la mayoría de los desarrolladores ya están súper acostumbrados a los objetos.
Y entonces simplemente siguen usándolos.
para almacenes de valores clave simples.
De todos modos, como conclusión deberías usar mapas.
cuando simplemente necesita asignar claves a valores
y también cuando necesitas claves que no sean cadenas
porque como vimos en el último video,
eso puede ser muy poderoso a veces.
Ahora, si necesitas funciones como valores
entonces absolutamente deberías usar un objeto para eso.
Entonces, en los objetos, estas funciones se llaman métodos.
y puede usar esta palabra clave para acceder a las propiedades
del mismo objeto, lo cual es imposible en los mapas.
Además, al trabajar con datos JSON,
como vimos en la luz anterior
probablemente también usarás objetos para eso
a menos que desee convertir los objetos en mapas,
pero eso generalmente no es algo que hacemos.
Entonces, de hecho, todavía usamos objetos todo el tiempo
pero los mapas también son una estructura de datos muy importante en este momento
y mucho más importante que los conjuntos.
Genial, y con eso, terminamos este resumen.
Espero que hayas encontrado esto útil, así que ahora sigamos adelante.