Ho due matrici:Combinando due matrici per formare un oggetto JavaScript
var columns = ["Date", "Number", "Size", "Location", "Age"];
var rows = [["2001", "5", "Big", "Sydney", "25"],["2005", "2", "Med", "Melbourne", "50"],["2012", "20", "Huge", "Brisbane", "80"]];
sto cercando di combinare in un oggetto JavaScript per ogni elemento dell'array righe. Dopodiché, voglio spingere ogni oggetto in un nuovo array.
come:
var newarray = [];
//'thing' should be the same structure for each row item
var thing = {
"Date" : "2001",
"Number" : "5",
"Size":"Big",
"Location":"Sydney",
"Age":"25"
}
newarray.push(thing);
posso fare questo quando so i nomi delle colonne, ma ho bisogno di essere in grado di memorizzare i dati in questo modo, quando il nome di colonna è sconosciuto - vale a dire sulla base del indici dell'array di colonne.
ho provato come questo prima:
for(var y = 0; y < rows.length; y++){
for(var i = 0; i < columns.length; i++){
thing[columns[i]] = rows[i][i];
}
newarray.push(thing)
}
Il codice sopra unico memorizzato il primo elemento ripetutamente (secondo rows.length).
Non capisco come combinare i nomi delle colonne con le righe per creare una matrice di oggetti. Il fatto che le "righe" contengano array è particolarmente confuso.
Grazie, ho provato in questo modo, e sto avendo lo stesso problema. Vedi: [JSFiddle] (http://jsfiddle.net/tamarasaurus/V42Hx/). Mi sto perdendo qualcosa? – tamarasaurus
@tamarasaurus, hai visto il mio ultimo aggiornamento? Ho aggiunto una parte che specifica che è necessario impostare 'var thing = []' ogni iterazione del ciclo. Il tuo JSFiddle non lo mostra. –
Vedere http://jsfiddle.net/V42Hx/2/ con la modifica aggiunta. Sembra funzionare. –