Różnica między obiektem a mapą w JavaScript - czym się różnią i kiedy ich używać? [film]
W najnowszym odcinku swojego kanału, Overment szczegółowo omawia różnice pomiędzy mapami a obiektami w programowaniu. Na początku odcinka autor zwraca uwagę na podobieństwa, które istnieją pomiędzy tymi dwoma strukturami. Zarówno mapy, jak i obiekty służą do przechowywania różnych informacji w formie kluczy i wartości. Warto jednak zauważyć, że obiekty mają swoje ograniczenia, gdyż jako klucze mogą przyjmować tylko typy proste oraz symbole, podczas gdy w mapach możemy używać także obiektów czy tablic. To sprawia, że mapy są bardziej elastyczne w wielu sytuacjach.
Overment podaje przykład, w którym obiekt zawiera logikę w postaci funkcji, co nie jest możliwe w mapach. To ważna różnica pomocna w określeniu, w jakich okolicznościach powinniśmy korzystać z jednej lub drugiej struktury. Dodatkowo, autor porusza kwestię współpracy obiektów z formatem JSON, co również wpływa na praktyczne zastosowanie tych struktur w codziennym programowaniu. Różnice takie jak iterowanie są kluczowe — w przypadku map iterowane elementy prezentowane są w ustalonej kolejności, co daje większą przewidywalność w pracy z danymi.
Zmiany w sposób wyświetlania danych, które zostają opisane przez Overmenta, mają ogromne znaczenie, kiedy zależy nam na zachowaniu kolejności elementów. W jasno przedstawionym przykładzie, autor porównuje iterowanie w mapie oraz obiekcie, pokazując, jak różnice w wyświetlaniu mogą wpłynąć na nasze decyzje programistyczne. Warto zwrócić uwagę na fakt, iż jeśli kolejność jest istotna, to lepiej jest wykorzystać mapę zamiast obiektu. Dodatkowo, Overment podkreśla, jak łatwo możemy zyskać informacje o ilości elementów w mapie dzięki właściwości SIZE, co stanowi istotną przewagę nad obiektami.
Kiedy mówimy o wydajności w pracy z dużymi kolekcjami danych, kluczowe staje się wybranie odpowiedniej struktury. Overment przypomina, że mapy świetnie nadają się do zarządzania danymi, jeśli chcemy dodawać i usuwać elementy, co w przypadku obiektów bywa już bardziej problematyczne. Autor zachęca swoich widzów do przypomnienia sobie, że w prostych strukturach lub tam, gdzie konieczna jest logika, lepiej skorzystać z obiektów, zaś w bardziej złożonych przypadkach wybierać mapy. To cudowne podsumowanie pokazuje, że decyzja o wyborze między mapą a obiektem jest często złożona i zależy od specyfiki konkretnej sytuacji.
Na koniec Overment zachęca swoich widzów do obejrzenia wcześniejszego filmu, który szczegółowo omawia metody, takie jak entries i from entries, umożliwiające konwertowanie pomiędzy obiektami a mapami. Warto zauważyć, że film zgromadził do tej pory 4546 wyświetleń oraz 145 polubień, co świadczy o dużym zainteresowaniu tematem. Overment zamyka odcinek, dziękując widzom za uwagę i zapraszając do obserwowania kolejnych filmów. Czekamy na więcej ciekawych treści od Overmenta!
Toggle timeline summary
-
Wprowadzenie do tematu różnic między mapami a obiektami.
-
Rozpoczęcie dyskusji na temat podobieństw między mapami a obiektami.
-
Zarówno mapy, jak i obiekty są używane do przechowywania informacji.
-
Podkreślenie kluczowej różnicy dotyczącej typów używanych kluczy.
-
Dalsze wyjaśnienie, jakie typy kluczy są możliwe.
-
Przykład obiektu, który zawiera logikę.
-
Wzmianka o tym, jak obiekty dobrze integrują się z formatem JSON.
-
Dyskusja na temat iteracji przez mapy w porównaniu do obiektów.
-
Ilustracja, jak elementy są wyświetlane w mapie w porównaniu do obiektu.
-
Wyjaśnienie, jak uzyskać rozmiar mapy.
-
Wprowadzenie większej liczby różnic między mapami a obiektami.
-
Dyskusja na temat operacji wykonywanych na dużych zbiorach danych.
-
Podsumowanie, kiedy używać obiektów w porównaniu do map.
-
Metody dostępne w mapach, które ułatwiają pracę z dużymi zestawami danych.
-
Zakończenie na temat różnic między mapami a obiektami.
-
Wzmianka o filmie na temat konwertowania obiektów na mapy.
-
Podziękowania i zakończenie.
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ść!