Jest już kilka prostych przykładów, ale po tym, jak sformułowałeś swoje pytanie, zauważyłem, że prawdopodobnie pochodzisz z tła PHP i oczekujesz, że JavaScript będzie działał w ten sam sposób - tak nie jest. PHP array
bardzo różni się od JavaScript Array
.
W PHP tablica asocjacyjna może zrobić większość tego, co tablica indeksowana numerycznie ( array_*
funkcje działają, możesz to count()
zrobić itp.) Po prostu tworzysz tablicę i zaczynasz przypisywać do indeksów łańcuchowych zamiast liczbowych.
W JavaScript wszystko jest obiektem (z wyjątkiem prymitywów: string, numeric, boolean), a tablice to pewna implementacja, która pozwala mieć indeksy numeryczne. Wszystko popychany do tablicy wpłynie ITS length
, i można powtórzyć nad zastosowaniem metod Array ( map
, forEach
, reduce
, filter
, find
, itd.) Jednakże, ponieważ wszystko jest obiektem, zawsze jesteś wolny, aby po prostu właściwości przypisywać, bo to jest coś zrobić, aby dowolny obiekt. Notacja w nawiasach kwadratowych to po prostu inny sposób uzyskania dostępu do właściwości, więc w twoim przypadku:
array['Main'] = 'Main Page';
jest w rzeczywistości równoważne z:
array.Main = 'Main Page';
Z twojego opisu domyślam się, że chcesz mieć „tablicę asocjacyjną”, ale w przypadku JavaScript jest to prosty przypadek użycia obiektu jako tablicy mieszającej. Wiem też, że to przykład, ale unikaj nieistotnych nazw, które opisują tylko typ zmiennej (np. array
) I nazwę na podstawie tego, co powinna zawierać (np pages
.). Proste obiekty nie mają wielu dobrych bezpośrednich sposobów iteracji, więc często zamieniamy się następnie w tablice, używając najpierw Object
metod ( Object.keys
w tym przypadku - jest to również entries
i values
jest teraz dodawane do niektórych przeglądarek), które możemy zapętlić.
const pages = {
Main: 'Main page',
Guide: 'Guide page',
Articles: 'Articles page',
Forum: 'Forum board',
};
Object.keys(pages).forEach((page) => console.log(page));