Как создавать объекты в цикле? Здравствуйте. Подскажите, как правильно сформировать массив объектов на JS?
Я с помощью геокодера получил от яндекс.карт несколько точек. Они хранятся в res.geoObjects. Теперь мне надо на карте вывести список с этими адресами. Для этого мне необходимо сформировать массив с объектами yamps.control.ListBoxItem, что я и делаю в цикле, но код выполняется до строчки var itemBoxItem = new yamps.control.ListBoxItem, а дальше ничего, ошибок в консоли тоже нет. Как мне правильно сформировать этот массив?var countGeoObject = res.geoObjects.getLength();
for (var i=0; i

21 Авг 2019 в 07:04
179 +1
0
Ответы
1

Ваш код выглядит верным, однако возможно проблема заключается в том, что методы 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 правильно определен и доступен в вашем коде.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир