to zamiast tworzyć mi index o nazwie 10 tworzy mi 10ty element tablicy.
OK, a jaka jest różnica? Przeszkadza Ci, że własność length
się aktualizuje, tj. po dodaniu pola o kluczu "10" length wynosi 11?
W JavaScripcie każdy obiekt jest swoistą tablicą asocjacyjną. Prawdziwe tablice -- np. utworzone konstruktorem Array()
lub literałem tablicowym []
-- mają takie własności jak obiekty, ale jeszcze -- dodatkowo -- kilka bajerów. Kilka funkcji, jak splice()
, a także automatycznie aktualizowaną własność length
.
Jeśli nie potrzebujesz tych dodatków, użyj zwykłego obiektu, który w JS jest mapą (tj. "tablicą asocjacyjną"). Obiekt taki utwórz, przypisując do zmiennej wywołanie konstruktora Object()
lub -- nawet lepiej -- pusty literał obiektowy, czyli po prostu {}
.
BTW. To toString()
w Twoim kodzie nic nie robi. Klucze w tablicy i tak są tak naprawdę... stringami, jak w innych obiektach. Choć stringi, które reprezentują liczby całkowite z odpowiedniego zakresu, są traktowane w specjalny sposób.