我有兩個數組:合併兩個數組,以形成一個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"]];
我想將它們合併成一個JavaScript對象的行陣列中的每個項目。之後,我想將每個對象都推送到一個新的數組中。
像:
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);
我能做到這一點,當我知道列的名字,但我需要能夠將數據存儲在這種方式,當列名是未知的 - 即,基於列數組的索引。 (根據rows.length)連連
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)
}
只存儲的第一項上面的代碼:
我試圖像這樣之前。
我不明白如何結合列名與行來創建一個對象數組。 'rows'包含數組的事實尤其令人困惑。
謝謝,我想這樣的說法,和我有同樣的問題。請參閱:[JSFiddle](http://jsfiddle.net/tamarasaurus/V42Hx/)。我錯過了什麼嗎? – tamarasaurus 2012-02-13 06:21:52
@tamarasaurus,你看到我的最新更新嗎?我添加了一個部分,指定您需要在循環的每次迭代中設置'var thing = []'。你的JSFiddle沒有顯示。 – 2012-02-13 06:30:10
查看http://jsfiddle.net/V42Hx/2/並添加了更改。似乎工作。 – 2012-02-13 06:31:51