struktury danych w JavaScripcie – lista jednokierunkowa

Kolejny post z serii struktury danych w JavaScripcie – lista jednokierunkowa. Podstawy działania listy omówiłem ostatnim razem. Teraz kolej na bardziej rozbudowaną wersję tej struktury danych – listę jednokierunkową.

Struktury danych w JavaScripcie – Lista Czytaj dalej struktury danych w JavaScripcie – lista jednokierunkowa

Struktury danych w JavaScripcie – Lista

Dziś ‚struktury danych w JavaScripcie – Lista’, czyli powrót do serii artykułów o strukturach danych. Listy to tak naprawdę jedna z najczęściej używanych struktur. W JavaScripcie świetnie symuluje ją zwykła tablica. Mimo to w ramach treningu/nauki zbuduję własną klasę tak jak zrobiłem to ze stosem oraz kolejką. Nie będzie to duże wyzwanie, zachowanie listy jest dość proste. Jednak dobre zrozumienie działania tej struktury danych będzie świetnym wstępem do bardziej wymagających wersji, list jedno i dwukierunkowych.

Struktury danych w JavaScripcie – Lista Czytaj dalej Struktury danych w JavaScripcie – Lista

Głębokie kopie tablic

Dziś krótki wpis. Uzupełnienie poprzedniego posta, opisującego podstawowe różnice pomiędzy typami prostymi a referencyjnymi.

Wyjaśniłem tam dlaczego nie możemy skopiować tablicy przy użyciu operatora ‚=’. Taka operacja przypisuje do zmiennej po lewej stronie operatora referencje do której prowadzi zmienna po prawej stronie. Nie kopiuje tablicy tak jak w przypadku zmiennych typu prostego, jak ‚number’ czy ‚boolean’.

Zamiast tego otrzymamy tak zwaną „płytką kopię” (shallow copy). Wszelkie zmiany, które program wykona w użyciu nowej płytkiej kopii, będą też odzwierciedlone w oryginale. Obie zmienne tak naprawdę wskazują na ten sam obiekt.

Dzieje się tak dlatego, że wszystkie obiekty w JavaScripcie (tablica też jest obiektem) są typami referencyjnymi. Jak się nad tym zastanowimy, ma to sens, ponieważ zamiast kopiować obiekt, lepiej jest stworzyć jego nową instancję za pomoc operatora ‚new’.

Z doświadczenia wiem jednak, że czasem przydaje się zrobić ‚głęboką kopię’ istniejącej już tablicy z całą jej zawartością. Skoro nie mamy takiej możliwości, to możemy stworzyć ją sobie sami!
Czytaj dalej Głębokie kopie tablic