Element jednej tablicy indexem drugiej w js

0

Hej,

mam dwie tablice numbers i sortedNumbers. Chciałbym żeby powiedzmy wartość znajdująca się pod numbers[5] np 10 stało się indexem tablicy asocjacyjnej sortedNumbers. Jeżeli użyję:

sortedNumbers[numbers[licznik]]

to zamiast tworzyć mi index o nazwie 10 tworzy mi 10ty element tablicy. Probowałem też takiech podejść:

sortedNumbers.numbers[licznik]
sortedNumbers[numbers[licznik].toString()]

ale niestety też nie zadziałało. Jak mógłbym to zrobić?

1

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1