0

I have an array:

var markerArray = [];//global var
var markerCnt = 0;//global var
for(var x=0;x<10;x++){
    markerArray[markerCnt] = new Array(agency, address, marker, onMarkerClick);
    //agency and agency = string
    //marker = google maps marker
    //onMarkerClick = function
    markerCnt++;
}

How do I call a specified onMarkerClick function? Would I just do:

markerArray[0][3]();
4

2 に答える 2

1

別の解決策として、これを行うこともできます。

var markerArray = [];
var markerCnt = 0;

for(var x=0;x<10;x++){
    markerArray[markerCnt] = {
        'agency' : agency, 
        'address' : address, 
        'marker' : marker, 
        'click' : onMarkerClick
    };
    markerCnt++;
}

//To call the click
markerArray[0].click();
于 2012-08-10T21:44:41.670 に答える
0

あなたの質問に対する答えはイエスです。

次元数に関係なく、配列に格納されている関数を実行できます。

// perfectly valid
markerArray[0][3]()

// as is this
someArray[0][1][7][2]()

質問に答えるだけでなく、オブジェクトの配列を使用することをお勧めします。これにより、配列メンバーを実行する必要がなくなります。これにより、コードの可読性が向上し、何をしたかを把握しようとして 6 か月後にコードを見ると、数時間節約できます。

var markerArray = [];//global var
var markerCnt = 0;//global var
for(var x=0;x<10;x++){
    markerArray[markerCnt] = {
        agency: agency
        address: address
        marker: marker
        onMarkerClick: onMarkerClick
    };
    //agency and agency = string
    //marker = google maps marker
    //onMarkerClick = function
    markerCnt++;
}

// then reference your function
markerArray[0].onMarkerClick();
于 2012-08-10T21:44:16.460 に答える