Mam dwie tablice:Łącząc dwie tablice w celu utworzenia JavaScript Object
var columns = ["Date", "Number", "Size", "Location", "Age"];
var rows = [["2001", "5", "Big", "Sydney", "25"],["2005", "2", "Med", "Melbourne", "50"],["2012", "20", "Huge", "Brisbane", "80"]];
Próbuję połączyć je w javascript obiektu dla każdego elementu w tablicy wiersze. Następnie chcę przenieść każdy obiekt do nowej tablicy.
odczuwalna:
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);
mogę to zrobić, gdy wiem, nazwy kolumn, ale muszę być w stanie przechowywać dane w ten sposób, gdy nazwa kolumna jest nieznany - czyli w oparciu o indeksy tablicy kolumn.
próbowałem go tak przed:
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)
}
powyższy kod przechowywane tylko pierwszego elementu znowu i znowu (według rows.length).
Nie rozumiem, jak łączyć nazwy kolumn z wierszami, aby utworzyć tablicę obiektów. Fakt, że "wiersze" zawiera tablice, jest szczególnie mylący.
Dzięki, próbowałem to w ten sposób, i mam ten sam problem. Zobacz: [JSFiddle] (http://jsfiddle.net/tamarasaurus/V42Hx/). Czy czegoś brakuje? – tamarasaurus
@amamarasaurus, widziałeś moją ostatnią aktualizację? Dodałem część określającą, że należy ustawić 'var thing = []' w każdej iteracji pętli. Twój JSFiddle tego nie pokazuje. –
Zobacz http://jsfiddle.net/V42Hx/2/ z dodaną zmianą. Wydaje się działać. –