Я борюсь с созданием массива объектов из базы данных firebase. Мне нужно получить такой массив: см. экран консоли для печати массива
Вместо этого я получаю это: см. экран консоли, отображающий массив, который я получаю при получении даты из firebase
Вот код, который я использую для получения данных:
function gotData(data) {
//console.info(data.val());
var mesta = data.val();
var keys = Object.keys(mesta);
//console.info(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.info(mestaz);
}
}
Я пытаюсь создать массив в самом конце. Любая помощь приветствуется. Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Создавайте массив 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.info(mestaz);
Большой! Большое спасибо!