KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 33.
Instrukcja przypisania elementu do tablicy w języku JavaScript dotyczy tablicy
Ilustracja przedstawia fragment kodu w języku JavaScript, który dotyczy przypisania wartości do tablicy asocjacyjnej.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "asocjacyjnej" odnosi się do sytuacji, gdy w JavaScript przypisanie wykonuje się pod kluczem tekstowym (np. nazwaną właściwością), a nie pod indeksem liczbowym.
W praktyce współcześnie częściej opisuje się to jako użycie właściwości obiektu (Object/Map) niż "tablicy asocjacyjnej", stąd wskazanie nieaktualności.

Pełne wyjaśnienie:

W JavaScript klasyczna tablica (Array) jest przeznaczona głównie do przechowywania elementów pod indeksami liczbowymi (0, 1, 2, ...). Typowy zapis przypisania elementu do tablicy ma postać tablica[0] = wartość i dotyczy właśnie indeksowania liczbowego.

Jednocześnie JavaScript pozwala użyć nawiasów kwadratowych także z kluczem tekstowym, np. tablica["nazwa"] = wartość. Taki zapis nie tworzy "elementu tablicy" w sensie indeksów 0..n, tylko dodaje właściwość do obiektu (ponieważ Array jest również obiektem). W wielu starszych materiałach dydaktycznych bywa to nazywane "tablicą asocjacyjną", stąd odpowiedź "asocjacyjnej" pasuje do intencji pytania.

Dlaczego pozostałe odpowiedzi nie pasują do tej intencji?

  • "statycznej" – JavaScript nie ma wbudowanych "tablic statycznych" w sensie stałego rozmiaru znanego z niektórych języków; Array jest dynamiczna.
  • "numerycznej" – "numeryczna" sugeruje tablicę przechowującą liczby albo indeksowaną liczbowo; pytanie celuje w przypisanie po kluczu (asocjacyjnie), nie w typ danych.
  • "wielowymiarowej" – tablice wielowymiarowe w JS realizuje się jako tablice tablic (np. tab[0][1]); nie wynika to z samego faktu przypisania po kluczu.

W praktyce programistycznej, zamiast wykorzystywać Array z kluczami tekstowymi, zaleca się użycie Object albo Map, aby kod był czytelny i zgodny ze współczesnym rozumieniem struktur danych.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To przypisanie wartości do elementu tablicy Array pod indeksem liczbowym 0. Zwiększa lub modyfikuje zawartość tablicy i wpływa na jej długość (length), jeśli indeks wykracza poza dotychczasowy zakres.
Najczęściej nie dodajesz "elementu tablicy", tylko tworzysz właściwość obiektu (bo Array jest obiektem). Taka właściwość nie jest traktowana jak indeks liczbowy i zwykle nie zmienia length ani nie zachowuje się jak typowy element tablicy.
W JS Array jest zoptymalizowana pod indeksy liczbowe. "Asocjacyjność" realizuje się przez Object (pary klucz–wartość) lub Map. Używanie kluczy tekstowych na Array to w praktyce dodawanie właściwości, a nie klasyczna tablica asocjacyjna.
Array wybierz do list/zbiorów uporządkowanych indeksowanych liczbami. Object do prostych rekordów z nazwanymi polami. Map do słownika klucz–wartość, gdy klucze nie są tylko stringami lub zależy Ci na pewnym porządku iteracji i wygodnych metodach.
Zwykle nie. length w Array zależy od najwyższego indeksu liczbowego + 1. Właściwości tekstowe (np. tab["a"]) są traktowane jak zwykłe własności obiektu i nie muszą wpływać na długość tablicy.
Typowym sygnałem są odwołania w stylu tab["nazwa"] albo użycie for...in po tablicy. W projektach web to często prowadzi do błędów w iteracji i niespójnego zachowania. Lepiej wtedy zamienić Array na Object lub Map.
Najczęściej: uznanie, że każdy zapis w nawiasach kwadratowych dotyczy elementu tablicy, mylenie indeksu z kluczem, błędne wnioski o length oraz o tym, jak działają pętle iterujące. Warto pamiętać: indeks liczbowy to "tablica", klucz nazwany to "właściwość".
Gdy dane mają strukturę tabeli lub macierzy, np. plansza gry, siatka współrzędnych, zestaw wyników w wierszach i kolumnach. Realizuje się to jako tablice tablic, np. dane[wiersz][kolumna], a nie przez przypisanie po kluczu tekstowym.
"Tablica statyczna" kojarzy się z niezmiennym rozmiarem. W JS standardowa Array jest dynamiczna: może rosnąć i maleć, a rozmiar wynika z indeksów i operacji takich jak push, pop, splice. Dlatego to określenie jest nietypowe w JS.
Ćwicz krótkie przykłady: różnice między tab[0] a tab["x"], wpływ na length oraz iterację (for, for...of, for...in). Następnie porównaj z użyciem Object i Map, bo to częsty temat w zadaniach praktycznych.
info

Około 53% zdających odpowiada poprawnie na to pytanie. trudne

Źródła:

  • MDN Web Docs: "Array" (opis przeznaczenia tablic i zachowania jako obiektu), https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array (dostęp: 2026-03-01)
  • MDN Web Docs: "Working with Objects" (właściwości obiektów i dostęp przez nawiasy kwadratowe), https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects (dostęp: 2026-03-01)
  • ECMA-262 (ECMAScript Language Specification): rozdziały dotyczące obiektów i Array (definicje własności i indeksów), https://tc39.es/ecma262/ (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja MDN: Array i właściwości obiektów
  • Specyfikacja ECMAScript (sekcje dotyczące obiektów i tablic)
  • Kurs/rozdział o strukturach danych w JavaScript (Array, Object, Map)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego