2017-04-06 93 views
2

我從一個查詢中根據firebase檢索了下面的數據。 我試圖創建一個沒有成功的2D數組。使用對象創建一個二維數組 - Javascript

我該怎麼辦?

Object {address: "6220 Lawson Dr, Haymarket, VA 20169", name: "Dave", petProfile: "A"} 

Object {address: "2121 I St NW, Washington, DC 20052", name: "George W", petProfile: "A"} 

預期結果:

[ 
["6220 Lawson Dr, Haymarket, VA 20169", "Dave", "A"], 
["2121 I St NW, Washington, DC 20052", "George W", "A"] 
] 

我的代碼:

var myArr = [];   
for (var i=0, len=data.length; i<len; i++) { 
    for (var j=0, len2=data[i].length; j<len2; j++) { 
     var sub = data[i][j]; 
    } 
} 
myArr.push(sub); 
console.log(myArr); 
+0

爲什麼要創建一個二維數組?你確定你不能使用一組對象嗎? – Triptych

+1

你說得對。我認爲一組對象也可以工作。 –

回答

2

您可以將兩個對象移動到一個數組中,用Object.keysArray#map迭代每個對象,然後返回值。

var obj1 = {address: "6220 Lawson Dr, Haymarket, VA 20169", name: "Dave", petProfile: "A"}, 
 
    obj2 = {address: "2121 I St NW, Washington, DC 20052", name: "George W", petProfile: "A"}, 
 
    arr = [obj1, obj2], 
 
    res = arr.map(c => Object.keys(c).map(v => c[v])); 
 
    
 
    console.log(res);

0

您可以使用.map()簡單地做:

const myArr = data.map(i => [i.address, i.name, i.petProfile]) 

這將提取的地址,姓名,和petP來自data中的每個元素的rofiles並放入myArray中。