我正在努力从firebase数据库创建一个对象数组。 我需要得到一个这样的数组: see the console printscreen of an array
相反,我得到了这个:see the console printscreen of an array Iam getting when retrieving date from firebase
以下是Iam用于获取数据的代码:
function gotData(data) {
//console.log(data.val());
var mesta = data.val();
var keys = Object.keys(mesta);
//console.log(keys);
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var nazevmesta = mesta[k].nazevmesta;
var lat = mesta[k].lat;
var lng = mesta[k].lng;
var mesto = new Object();
mesto.name = nazevmesta;
mesto.lat = lat;
mesto.lng = lng;
var mestaz = new Array();
mestaz.push(mesto);
console.log(mestaz);
}
}
我正在尝试在最后创建数组。 任何帮助将非常感激。 感谢
答案 0 :(得分:0)
在循环外只创建一次mestaz
数组,而不是每次迭代循环时创建一个新实例
var mestaz = []; /// create one array
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var mesto = {
name: mesta[k].nazevmesta,
lat: mesta[k].lat,
lng: mesta[k].lng
};
// push each object to same array
mestaz.push(mesto);
}
// log whole array after adding all of the elements in the loop
console.log(mestaz);