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 № 1Ho 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.