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 arraybardzo 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 Objectmetod ( Object.keysw tym przypadku - jest to również entriesi valuesjest 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));