/ / Il ciclo di oggetti Javascript sta solo aggiungendo l'ultimo elemento iterato a un altro oggetto - javascript

Il ciclo di oggetti Javascript aggiunge solo l'ultimo elemento iterato a un altro oggetto: javascript

Ho una serie di loop, all'interno del loop finale viene creato un oggetto javascript. L'oggetto cambia ad ogni iterazione, ad esempio:

// 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

Voglio aggiungere ogni (4) versioni dell'oggetto a un altro oggetto, ma sono in grado di aggiungere solo la versione finale n. 4: {Castelo Branco: 0.286}. Capisco perché questo sta accadendo, ma non riesco a trovare una soluzione. Ho creato un esempio (controlla l'output della console): http://jsfiddle.net/LUAj3/

AGGIORNARE

io risolto il problema ponendo i in una funzione, creando così il proprio ambito.

risposte:

0 per risposta № 1

Ho dato un'occhiata molto veloce al tuo jsfiddle, quindi prendi quello che sto dicendo con le pinze.

Nel tuo esempio, questa linea catIndicator[pck[i]] rimane lo stesso quando esegui il ciclo attraverso i tuoi cicli interni, poiché in ogni iterazione dei tuoi cicli interni il valore di i non cambia, quindi stai sovrascrivendo quel valore.

Se sto capendo correttamente la tua domanda, dovresti usare array multidimensionali come catIndicator[pck[i][j][key]]. Potrebbe non essere l'ordine corretto, a seconda di come si desidera impostare l'oggetto dati, ma credo che capisca il punto.

Parola al saggio, cerca di mantenere i tuoi esempi comepiccolo e al punto possibile. La maggior parte delle persone su SO passerà a un'altra domanda se vede che l'esempio è troppo complicato per una risposta rapida. Se modifichi il tuo esempio in modo che venga evidenziato solo il codice del problema, sono sicuro che otterrai più risposte.