Это своего рода вопрос, связанный с мозгом, поскольку код работает отлично, как есть, он просто слегка раздражает мое эстетическое чувство. Я обращаюсь к Stack Overflow, потому что мой собственный мозг сейчас не работает.
Вот фрагмент кода, который ищет адрес с помощью API Google Maps JS и помещает маркер на карту. Однако иногда исходный поиск не работает, поэтому я хочу повторить процесс с другим адресом.
geocoder.getLatLng(item.mapstring, function(point) {
if (!point) {
geocoder.getLatLng(item.backup_mapstring, function(point) {
if (!point) return;
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
return;
}
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
(Второй параметр getLatLng
- функция обратного вызова.)
Конечно, вы можете видеть, что три линии, которые центрируют и масштабируют карту и добавляют маркер, дублируются, один раз в основном обратном вызове и один раз в "обратном обратном вызове" (ха-ха). Можете ли вы найти способ выразить все это без какой-либо избыточности? Вы зарабатываете бонусные очки и мою лесть, если ваше решение работает для произвольного количества строк резервной карты.