这是一个脑筋急转弯的问题,因为代码按原样工作得非常好,它只是稍微刺激了我的审美意识。我转向 Stack Overflow 是因为我自己的大脑现在让我失望了。
这是一段使用 Google Maps JS API 查找地址并在地图上放置标记的代码片段。但是,有时初始查找会失败,所以我想用不同的地址重复这个过程。
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
是回调函数。)
当然,您可以看到使地图居中和缩放地图以及添加标记的三行是重复的,一次在主回调中,一次在“后备回调”中(哈哈)。你能找到一种方法来表达整个事情而没有任何冗余吗?如果您的解决方案适用于任意数量的备份地图字符串,您将获得奖励积分和我的赞美。