Javascript 清除谷歌地图上的标记

Javascript 清除谷歌地图上的标记,javascript,google-maps,Javascript,Google Maps,我制作了一个带有两组标记的自定义谷歌地图。我正在尝试编写一个函数来清除标记,但无法使其工作 职能: function clearMarkers() { for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } markers = []; }; 但是,当我使用数组定义标记(如下所示)时,它不再起作用: var locs1 = [ ['Name', 51.2, 0, 'Info'], ['N

我制作了一个带有两组标记的自定义谷歌地图。我正在尝试编写一个函数来清除标记,但无法使其工作

职能:

function clearMarkers() {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(null);
  }
  markers = [];
};
但是,当我使用数组定义标记(如下所示)时,它不再起作用:

var locs1 = [
['Name', 51.2, 0, 'Info'],
['Name', 52, 0.3, 'Info']
];
如何使clearMarkers功能正常工作


可以在中找到完整的代码以帮助理解上下文。

您的变量标记应该是全局的,而不是在函数中声明的

我编辑了你的


我以前有过这个问题。您需要保留一个标记列表或数组,然后遍历所有标记以清除它们。简单地将一组cordinate设置为null并不一定会清除已经存在的标记,因为它是另一个对象


请在问题本身中提供一个说明问题的答案。你发布的
locs1
对象都不是标记数组,你还没有发布从它们创建标记数组的代码。你的小提琴有一个javascript错误
Uncaught ReferenceError:标记没有定义
抱歉,伙计,我仍然习惯StackOverflow。在以后的提问中,我们会记住这一点。谢谢。我只是在小提琴上看了一下更新的代码,我想我明白了,我会继续摆弄的。
var locs1 = [
['Name', 51.2, 0, 'Info'],
['Name', 52, 0.3, 'Info']
];
var markers = [];

var locs1 = [
['Name', 51.2, 0, 'Info'],
['Name', 52, 0.3, 'Info']
];

var locs2 = [
['Name', 53, -1.93, ' Info'], ['Name', 51, -1.8979, 'Info']
];