Javascript 多维数组推送

Javascript 多维数组推送,javascript,arrays,object,multidimensional-array,Javascript,Arrays,Object,Multidimensional Array,我怎么能做这样的事 “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(gm

我怎么能做这样的事

“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`
}
showmarks(“车辆”);
展示标记(“房屋”);
隐藏标记(“车辆”);
var my_数组=[];
函数显示标记(类型)
{
//代码
var gmm=new google.maps.Marker(
{
//代码
});
my_数组[type].push(gmm);
//未捕获的TypeError:无法调用未定义的方法“push”
}
函数隐藏标记器(类型)
{
对于(var i=0;i

我基本上得到了3个不同的地图图标,我希望用户能够单独删除它们

Move
my_array[type]=[]
到顶部,并确保
类型
具有字符串或数字的值

如果在
隐藏标记器
之前调用
showmarks
,则问题是
我的数组[type]
未定义

将您的功能更改为:

函数显示标记(类型)
{
//代码
var gmm=new google.maps.Marker(
{
//代码
});
if(!(my_数组[类型]数组实例)){
my_数组[类型]=[];
}
my_数组[type].push(gmm);
}

如何声明和初始化my_数组
type
的值是多少?
my_数组[type]=[]应该做什么和/或为什么它最终会出现?我声明它为:
var my_array=[]。。。。这将清空数组
my_数组[type]=[]。。。。。类型是“车辆”,“房屋”或“其他”,如果它真的像它应该工作。请编辑并输入完整的代码。对不起,不清楚。我现在已经更新了主要帖子