@Obivankinobi

Как обратится к динамически созданной глобальной переменной?

Добрый день!
У меня возникла потребность создавать глобальные переменные для гугл карт, происходит это так:
var di = 1;
//начало цикла
window["marker" + di ] = new google.maps.Marker({
										icon: checkType(currtype),
										position: results[0].geometry.location,
										map: map
										});
di++;
console.log(????);
//конец цикла

Так вот как в теле цикла обратится к вот этой переменной marker1 ?
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Не нужно загрязнять глобальный объект своими переменными. Вы их потом перебрать не сможете.
Гораздо лучше создать заранее контейнер под них, например объект или массив.

По объекту вы сможете пробежаться с помощью цикла for..in, по массиву с помощью for или forEach.

var maps = {};

maps["marker" + 0] = ...;
maps["marker" + 1] = ...;

for (var prop in maps) {
    console.log(maps[prop]);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@SharuPoNemnogu
не язык плохой, программисты такие...
массивом не?
var markers = [];
var di = 1;
//начало цикла
markers[di] = new google.bla.bla;
console.log(markers[di]);
di++;
//конец цикла
Ответ написан
Комментировать
@DenJel
так и обратиться: window["marker" + di ], либо в es6 window[`marker${ di }` ], либо повесь доп ссылку, что мешает const link = window["marker" + di ] = ....?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы