2010-06-01 5 views
1

J'utilise google maps api v3 et ont un tableau de tableaux objet:rappel Javascript et google maps api question

MVCArray.<MVCArray.<LatLng>> 

Je veux itérer sur ce sujet. Je vois que MVCArray a une méthode forEach qui utilise un rappel, mais je n'ai aucune idée de comment l'utiliser (je n'ai pas fait beaucoup de js). Le api définit cette méthode comme suit:

forEach(callback:function(*, number))) 

Quelqu'un pourrait-il s'il vous plaît me montrer un exemple de la façon d'utiliser cette donnée un MVCArray de MVCArrays (je dois sortir chaque objet LatLng)?

Répondre

2

En JavaScript, vous pouvez faire circuler des fonctions de la même manière que n'importe quel autre type de données. Il y a deux façons habituelles d'aborder cela.

D'abord, vous pouvez définir une fonction de la manière habituelle et lui donner un nom:

function myHappyFunction(item, index) { 
    // Do things using the passed item and index 
} 
...forEach(myHappyFunction); 

Ici vous passez la fonction que vous avez créé dans la fonction forEach. myHappyFunction va maintenant être appelé un tas de fois, chaque fois en passant un élément différent de la liste.

Vous pouvez éviter la nécessité de trouver un nom de fonction intelligente simplement en passant directement une fonction, comme suit:

...forEach(function(item, index) { 
    // Do things using the passed item and index 
}); 

Ce se comporte de la même manière, mais sans la nécessité de développer un cadre unique nom pour chaque fonction que vous pourriez vouloir transmettre.

1

juste pour clarifier @ réponse de VoteyDisciple, voici une vraie vie exemple

aMarker est l'objet MVCArray qui, par défaut, a mis draggable false. donc quand l'utilisateur passe à 'vrai', mon code appelle ceci:

aMarker.forEach(function(item, index) { 
    aMarker[index].setDraggable(true); 
}); 

et les rend mobiles.