2010-09-30 17 views
17

Mam pole tekstowe autouzupełniania, w którym użytkownicy mogą wpisać kod przedmiotu i potrzebują dowiedzieć się, jaki jest numer identyfikacyjny tego kodu pozycji w javascript.Wydajna składnia do zapełniania tablicy asocjacyjnej javascript

Tablica asocjacyjna jest sposobem byłoby sobie wyobrazić, należy to zrobić, ale następujący wydaje się trochę długo zdyszany i mam nadzieję, że ktoś ma lepszy sposób to zrobić lub skrót tego, co mam poniżej:

var itemIds = new Array(); 
itemIds["item1"] = 15; 
itemIds["item2"] = 40; 
itemIds["item3"] = 72; 
... 

function getItemId(code){ 
    return itemIds[code]; 
} 
+1

Nie jest konieczne zadeklarowanie 'itemIds' jako obiektu' Array'. W końcu tylko dodajesz właściwości do obiektu. Ponieważ obiekt JavaScript może być postrzegany jako "kontener dla par klucz-wartość", zrobi to dowolny obiekt JavaScript. – smwikipedia

Odpowiedz

21

To, co robisz, nie jest tablicą - jest obiektem (obiekty w JavaScript są odpowiednikiem-asocjacji tablic asocjacyjnych w PHP).

Można użyć JavaScript Object dosłownego składnię:

var itemIds = { 
    item1: 15, 
    item2: 40, 
    item3: 72 
}; 

JavaScript członkowie obiektów można uzyskać za pośrednictwem dot notacji lub indeksu tablicy, tak jak poniżej:

itemIds.item1; 
itemIds['item1']; 

trzeba użyć sekundę opcja, jeśli masz nazwę członka jako ciąg znaków.

+0

Wow, to jest świetna odpowiedź, dziękuję za dostarczenie przykładów. – Jake

2

Spróbuj użyć Literal Object Notation, aby określić swoje wyszukiwanie takiego:

var itemIds = { 
    "item1" : 15, 
    "item2" : 40 
    ... 
}; 

dostęp powinien nadal działać tak:

var item1Value = itemIds["item1"]; 
+2

Arg ... Nie byłem wystarczająco szybki. – some

+1

Technicznie, JSON jest użyciem liter JavaScript i literałów tablicowych do wymiany danych - to, co pokazujesz, jest literałem obiektu. – Skilldrick

+0

Oh, założyłem z bitu "Notation" w nazwie, która zdefiniowała składnię. Obiekt dosłowny to jest! –

Powiązane problemy