2017-04-06 92 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中。