Tablice asocjacyjne w Javascript

Tablice asocjacyjne w Javascript teoretycznie nie występują, choć są często wykorzystywane przez programistów. Niektórzy niestety nie znają tego pojęcia, ale wszystko jest do nadrobienia.

W tym artykule będę się posługiwać skróconymi notacjami tworzenia tablic i obiektów:

var tablica=[];
var obiekt={};


Normalnie tablice są indeksowane liczbami. Liczby zawsze zaczynają się od 0. Tablica asocjacyjna różni się od zwykłej tablicy tym, że do indeksowania są wykorzystywane ciągi znaków:

tablica['elementTablicy']='jakiś tekst';

Jeśli w Javascript spróbujemy zrobić coś takiego ze zwykłą tablicą, to niestety wynik będzie inny niż spodziewany. Javascript przed przypisaniem wartości w tablicy, dokona konwersji w locie indeksu tekstowego na index liczbowy. W powyższym przypadku zamiast indeksu ‚elementTablicy’ otrzymamy indeks 0.

var tablica=[];
tablica['elementTablicy']='jakaś wartość';
alert(tablica['elementTablicy']==tablica[0]?
  'elementy mają taką samą wartość'
:
  'elementy mają różną wartość'
);

Powyższy przykład wyświetli komunikat, że oba elementy mają taką samą wartość.

Tablice asocjacyjne w Javascript

Na szczęście jest prosty sposób na to by tablice asocjacyjne zagościły w Javascript.

W związku z tym, że obiekt Array może być indeksowany jedynie liczbami, należy użyć zwykłego obiektu. Możliwe jest to dzięki temu, że w Javascript są dwie możliwości odwoływania się do właściwości obiektów:

  • jako właściwość obiektu
  • jako element w tablicy
var obiekt={};
obiekt.właściwość='jakaś wartość';
alert(obiekt['właściwość']==obiekt.właściwość?
  'elementy mają taką samą wartość'
:
  'elementy mają różną wartość'
);

Ten oto przykład wyświetli komunikat, że oba elementy mają tą samą wartość.

W ten oto prosty sposób możemy używać obiektu jako tablicy asocjacyjnej w Javascript. Różnica polega jedynie na deklaracji.

Twitter Obserwuj mnie na Blip.pl 

Dodaj komentarz

Twój komentarz

CommentLuv badge