Как создавать объекты в цикле? Здравствуйте. Подскажите, как правильно сформировать массив объектов на JS? Я с помощью геокодера получил от яндекс.карт несколько точек. Они хранятся в res.geoObjects. Теперь мне надо на карте вывести список с этими адресами. Для этого мне необходимо сформировать массив с объектами yamps.control.ListBoxItem, что я и делаю в цикле, но код выполняется до строчки var itemBoxItem = new yamps.control.ListBoxItem, а дальше ничего, ошибок в консоли тоже нет. Как мне правильно сформировать этот массив?var countGeoObject = res.geoObjects.getLength(); for (var i=0; i
Ваш код выглядит верным, однако возможно проблема заключается в том, что методы getAddressLine() и geometry.getCoordinates() могут возвращать нулевые значения. Пожалуйста, убедитесь, что у каждого геообъекта есть адрес и координаты.
Также убедитесь, что yamps.control.ListBoxItem правильно определен и доступен в вашем коде.
Попробуйте добавить проверку на наличие данных перед созданием объекта:
var countGeoObject = res.geoObjects.getLength(); var listBoxItems = []; for (var i=0; i < countGeoObject; i++) { var content = res.geoObjects.get(i).getAddressLine(); var center = res.geoObjects.get(i).geometry.getCoordinates(); if (content && center) { var itemBoxItem = new yamps.control.ListBoxItem({ data: { content: content, center: center, zoom: 9 } }); listBoxItems.push(itemBoxItem); } } console.log(listBoxItems);
Если проблема остается, убедитесь, что конструктор yamps.control.ListBoxItem правильно определен и доступен в вашем коде.
Ваш код выглядит верным, однако возможно проблема заключается в том, что методы getAddressLine() и geometry.getCoordinates() могут возвращать нулевые значения. Пожалуйста, убедитесь, что у каждого геообъекта есть адрес и координаты.
Также убедитесь, что yamps.control.ListBoxItem правильно определен и доступен в вашем коде.
Попробуйте добавить проверку на наличие данных перед созданием объекта:
var countGeoObject = res.geoObjects.getLength();var listBoxItems = [];
for (var i=0; i < countGeoObject; i++) {
var content = res.geoObjects.get(i).getAddressLine();
var center = res.geoObjects.get(i).geometry.getCoordinates();
if (content && center) {
var itemBoxItem = new yamps.control.ListBoxItem({
data: {
content: content,
center: center,
zoom: 9
}
});
listBoxItems.push(itemBoxItem);
}
}
console.log(listBoxItems);
Если проблема остается, убедитесь, что конструктор yamps.control.ListBoxItem правильно определен и доступен в вашем коде.