Я пытаюсь создать объект местоположений для размещения точек на карте.Как создать объект javascript динамически?
Мой код:
var Locs = [{}];
var title = '', content = '';
for (i = 0; i < locations.length; i++) {
content = '<div id="bodyContent">' +
'<p><b>' + locations[i][0] + '</b><br />' +
locations[i][4] +
'</div>';
Locs[i]['lat'] = locations[i][1];
Locs[i]['lon'] = locations[i][2];
Locs[i]['zoom'] = zoom;
Locs[i]['title'] = locations[i][0];
Locs[i]['html'] = content;
}
Я получаю сообщение об ошибке: TypeError: Locs[i] is undefined
Если я заменю я с 0 он работает для отображения одной точки на карте.
Что мне нужно для вывода является:
var Locs = [
{
lat: 45.9,
lon: 10.9,
zoom: 3,
title: 'Title A1',
html: '<h3>Content A1</h3>'
},
{
lat: 44.8,
lon: 1.7,
zoom: 3,
title: 'Title B1'
html: '<h3>Content B1</h3>'
},
{
lat: 51.5,
lon: -1.1,
zoom: 3,
title: 'Title C1',
html: '<h3>Content C1</h3>'
}
];
Так мне интересно, если кто-то может объяснить мне, что я не понимаю, о создании объекта динамически?
«Локи» уже определены как метод или что-то в этом роде, что произойдет, если вы измените имя на «location_array» – Petro
Я не понимаю, в чем проблема. 'Locs = []', а затем 'Locs.push ({lat: 1, lon: 2, etc})' –
Вы в настоящее время инициализируете Locs как массив, содержащий один объект. Вы должны инициализировать его как пустой массив: «var Locs = [];», а затем инициализировать каждый объект на каждой итерации: «Locs [i] = {};' – Arnauld