Я сохраняю все объекты маркера Google Maps в одном массиве. Сейчас я пытаюсь настроить функцию, которая удалит все маркеры в массиве с карты, но у меня возникают проблемы с циклом.Итерация через многомерный массив Javascript, заполненный объектами маркеров Google Maps
Во-первых, я ставлю каждый маркер в массиве таким образом:
eval("markerZip"+value.zip+" = new google.maps.Marker({map: map, icon: '/images/mapmarker.php?m=zip_marker.png', position: zipCenter});");
eval("markersArray['markerZip"+value.zip+"'] = markerZip"+value.zip);
Затем, когда я хочу, чтобы удалить маркеры я сделать это:
function removeAllMarkers(exceptId) {
$.each(markersArray, function(index, value) {
if(value != exceptId) {
value.setMap(null);
console.log(value);
}
});
}
Однако переборе массив Безразлично» похоже, ничего не делает. Это как если массив пуст, потому что строка console.log ничего не возвращает. Когда я показываю массив в моей консоли, она показывает «[]» (который я затем нажмите, чтобы отобразить дочерние объекты), который содержит:
markerZip01002
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02111
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02135
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02139
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02466
U { gm_accessors_={...}, map=U, b=U, more...}
Почему вы используете 'eval()' вместо того, чтобы просто писать соответствующий код javascript? – jfriend00