Создание массива JS-объектов из Firebase

Я борюсь с созданием массива объектов из базы данных 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);


  }
}

Я пытаюсь создать массив в самом конце. Любая помощь приветствуется. Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
541
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создавайте массив 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);

Большой! Большое спасибо!

Tadeas Hort 08.04.2018 17:48

Другие вопросы по теме