我该怎么办?
“type”=某个字符串
ShowMarkers('vehicles');
ShowMarkers('houses');
HideMarkers('vehicles');
var my_array = [];
function ShowMarkers(type)
{
//code
var gmm = new google.maps.Marker(
{
//code
});
my_array[type].push(gmm);
//Uncaught TypeError: Cannot call method 'push' of undefined
}
function HideMarkers(type)
{
for(var i = 0; i < my_array[type].length; i++)
{
my_array[type][i].setMap(null); //Hide the markers
}
my_array[type] = []; //Empty the array of `type`
}
我基本上有3个不同的地图图标,我希望用户能够单独删除
答案 0 :(得分:0)
将my_array[type] = [];
移至顶部,并确保type
的值为字符串或数字
答案 1 :(得分:0)
如果您在my_array[type]
之前致电ShowMarkers
,则问题是HideMarkers
未定义。
将您的功能更改为:
function ShowMarkers(type)
{
//code
var gmm = new google.maps.Marker(
{
//code
});
if (!(my_array[type] instanceof Array)) {
my_array[type] = [];
}
my_array[type].push(gmm);
}