/ Pętla obiektów / JavaScript dołącza tylko ostatni iterowany element do innego obiektu - javascript

Pętla obiektów JavaScript dołącza tylko ostatni iterowany element do innego obiektu - javascript

Mam szereg pętli, w ostatniej pętli tworzony jest obiekt javascript. Obiekt zmienia się przy każdej iteracji, na przykład:

// iteration 1: {Belmonte: 0.14625} (index):65
// iteration 2: {Castelo Branco: 0.286} (index):65
// iteration 3: {Belmonte: 0.14625} (index):65
// iteration 4: {Castelo Branco: 0.286}
// ... etc

Chcę dołączyć każdą (4) wersję obiektu do innego obiektu, ale mogę tylko dołączyć ostateczną wersję # 4: {Castelo Branco: 0.286}. Rozumiem, dlaczego tak się dzieje, ale nie mogę znaleźć rozwiązania. Stworzyłem przykład (sprawdź dane wyjściowe konsoli): http://jsfiddle.net/LUAj3/

AKTUALIZACJA

ja rozwiązany problem poprzez umieszczenie i w funkcję, tworząc w ten sposób własny zakres.

Odpowiedzi:

0 dla odpowiedzi № 1

Rzuciłem okiem na twoje jsfiddle, więc weź to, co mówię z odrobiną soli.

W twoim przykładzie ta linia catIndicator[pck[i]] pozostaje taki sam, gdy zapętlasz swoje wewnętrzne pętle, ponieważ w każdej iteracji twoich wewnętrznych pętli wartość i nie zmienia się, więc zastępujesz tę wartość.

Jeśli dobrze rozumiem twoje pytanie, musisz użyć tablic wielowymiarowych, takich jak catIndicator[pck[i][j][key]]. To może nie być poprawna kolejność, w zależności od tego, jak chcesz skonfigurować obiekt danych, ale uważam, że ma to sens.

Mów do mądrych, staraj się zachować swoje przykłady jakomałe i na temat, jak to możliwe. Większość osób na SO przejdzie do innego pytania, jeśli zobaczy, że przykład jest zbyt skomplikowany, aby można było szybko uzyskać odpowiedź. Jeśli dostosujesz swój przykład tak, aby podświetlony był tylko kod problemu, jestem pewien, że otrzymasz więcej odpowiedzi.