Difference between an object and a map in JavaScript - what are their differences and when to use them? [video]
In the latest episode of his channel, Overment extensively discusses the differences between maps and objects in programming. At the beginning of the episode, the author highlights the similarities that exist between these two structures. Both maps and objects are used for storing various information in the form of keys and values. However, it is important to note that objects have their limitations, as keys can only be simple types and symbols, whereas in maps we can also use objects or arrays. This makes maps more flexible in many situations.
Overment gives an example where an object contains logic in the form of functions, something that is not possible with maps. This is a significant difference that helps determine in which circumstances we should use one structure over the other. Additionally, the author touches upon how well objects work with JSON format, which also influences the practical application of these structures in everyday programming. Differences such as iteration are key – in the case of maps, the iterated elements are displayed in a fixed order, providing greater predictability when working with data.
The changes in the way data is displayed, which Overment describes, are crucial when we care about maintaining the order of elements. In a clearly presented example, the author compares iterating through a map versus an object, showing how differences in display can affect our programming decisions. It's worth noting that if order is important, it is better to use a map instead of an object. Moreover, Overment emphasizes how easily we can access the number of elements in a map using the SIZE property, which presents a significant advantage over objects.
When discussing efficiency working with large collections of data, it becomes essential to choose the appropriate structure. Overment reminds us that maps are excellent for managing data when we want to add and remove elements, while this can be more problematic with objects. The author encourages his viewers to remember that in simple structures or where some logic is necessary, it is better to use objects, whereas in more complex cases, maps should be opted for. This wonderful summary shows that the decision of whether to choose a map or an object is often complex and depends on the specifics of the situation at hand.
Finally, Overment invites his viewers to watch a previous video that thoroughly discusses methods such as entries and from entries, which facilitate conversion between objects and maps. It is worth noting that this video has garnered 4546 views and 145 likes at the time of writing this article, indicating a high level of interest in the topic. Overment concludes the episode by thanking the viewers for their attention and encouraging them to keep an eye out for future videos. We look forward to more interesting content from Overment!
Toggle timeline summary
-
Introduction to the topic of differences between maps and objects.
-
Discussion begins on similarities between maps and objects.
-
Both maps and objects are used to store information.
-
Highlighting a key difference regarding types of keys used.
-
Further explanation of what types of keys are possible.
-
Example given of an object that contains logic.
-
Mention of how objects integrate well with JSON format.
-
Discussion on iterating through maps compared to objects.
-
Illustration of how elements are displayed in a map versus an object.
-
Explaining how to get the size of a map.
-
Introducing more differences between maps and objects.
-
Discussion on operations performed on large data sets.
-
Summary of when to use objects versus maps.
-
Methods available in maps that simplify working with large datasets.
-
Conclusion on the differences between maps and objects.
-
Mention of a video on converting objects to maps.
-
Thank you and closing remarks.
Transcription
Cześć! W jednym z ostatnich odcinków opowiadałem Ci o mapach, a dzisiaj opowiem Ci o różnicach pomiędzy mapą a obiektem. Pomimo tego, że tematem tego odcinka są różnice pomiędzy mapą a obiektami, zaczniemy od omówienia podobieństw. Zazwyczaj mapy jak i obiekty wykorzystujemy do przechowywania różnego rodzaju informacji. Informacje te przechowywane są w formie klucza oraz wartości. Najpierwszą różnicą jaką tutaj mamy jest fakt, że w przypadku obiektów kluczem mogą być wyłącznie typy proste oraz symbole. Natomiast w przypadku map kluczem mogą być równie dobrze obiekty lub tablice. Czyli można powiedzieć, że mapy dają nam tutaj większą elastyczność. No ale spójrzmy teraz na ten przykład. Mamy tutaj obiekt, wewnątrz którego zapisana jest pewna logika. W tym przypadku jest to funkcja. No i w przypadku map nie możemy zapisywać wartości tego typu. No i jak widzisz, mamy tutaj kolejną rzecz, która może nam zasugerować kiedy korzystać z obiektów, a kiedy z map. Zanim przejdziemy dalej, warto jeszcze wspomnieć, że obiekty świetnie współgrają z formatem JSON. Natomiast w przypadku map nie jest już to tak oczywiste. Kolejną bardzo ważną różnicą, która może zdecydować się o tym, czy zdecydujesz się na wybór mapy czy obiektu, jest iterowanie. Mianowicie jeżeli mamy mapę oraz kilka elementów wewnątrz niej, możemy być pewni, że zawsze zostaną wyświetlone w odpowiedniej kolejności. W przypadku obiektów nie jest już to tak oczywiste. Zapisałem tutaj litery słowa OVERMENT zarówno w formie mapy jak i obiektu, przypisując je do elementów o totalnie losowych identyfikatorach. Zobaczmy teraz, na czym będzie polegać różnica w iterowaniu. Na początku weźmy sobie mapę. Jak widzisz, poszczególne litery zostały wyświetlone dokładnie w takiej samej kolejności, w jakiej je zapisałem. I teraz w przypadku obiektu będzie wyglądało to nieco inaczej. Tutaj pomimo tego, że zarówno litery jak i klucze zostały zapisane dokładnie tak samo jak w przypadku mapy, to jak widzisz kolejność ich wyświetlenia jest już zupełnie inna. Także jak widzisz, jeżeli z jakiegoś powodu zależy Ci na kolejności iterowania, wykorzystaj mapę zamiast obiektu. I mam jeszcze jeden bardzo prosty, ale często spotykany przykład. Mianowicie jeżeli chcemy dowiedzieć się ile elementów posiada mapa, wystarczy, że odczytamy jej właściwość SIZE. Natomiast w przypadku obiektów nie jest to tak oczywiste. Jeszcze do niedawna musieliśmy napisać oddzielne funkcje lub korzystać z bibliotek takich jak UNDERSCORE czy LOADAGE, natomiast teraz w większości przypadków totalnie wystarczy nam taki zapis. Oczywiście nie jest to koniec różnic pomiędzy mapami a obiektami. Ogólną zasadą jaką musisz zapamiętać jest fakt, że mapy świetnie sprawdzają się w przypadku pracy z dużą ilością danych, na których musimy wykonywać różne operacje np. dodawać elementy bądź je usuwać. W poprzednim odcinku, który właśnie powinien pojawić się na ekranie, pokazałem Ci jak w prosty sposób dodawać elementy do mapy, pobierać je i usuwać. Natomiast np. w przypadku obiektów usuwanie elementów bywa już problematyczne. Podsumujmy sobie to raz jeszcze. Jeżeli mamy bardzo proste struktury danych lub musimy zapisać w ich jakąś logikę, korzystamy z obiektów. Jeżeli z jakiegoś powodu kluczem wartości, którą chcemy zapisać w obiekcie nie może być typ prosty tylko np. inny obiekt, w takiej sytuacji musimy wykorzystać mapę. No i ostatecznie metody dostępne w mapach takie jak set, get i delete zdecydowanie ułatwiają pracę z dużym zestawem danych, tak samo jak chociażby właściwość size. I ostatecznie, jak widzisz, mamy tutaj jeszcze kwestię literowania i zachowania kolejności elementów. Mam nadzieję, że ten film choć trochę naświetlił Ci różnicę pomiędzy mapami i obiektami. Uwierz mi, że również ja często zastanawiam się czy wykorzystać w danej sytuacji mapy czy obiekty. W tym wszystkim jest jeszcze jeden dość istotny fakt. Właśnie na ekranie wyświetlił się film o metodach takich jak entries i from entries, które ułatwiają konwertowanie obiektów na mapy i odwrotnie. Szczerze zachęcam Cię do jego obejrzenia, o ile jeszcze tego nie zrobiłeś. A teraz dziękuję Ci za uwagę i do usłyszenia w kolejnym filmie. Cześć!