Ik gebruik de volgende code van de Google DistanceMatrixService


var distances={};
var distanceService = new google.maps.DistanceMatrixService();

distanceService.getDistanceMatrix({
    origins: [localStorage.getItem('latitude')+','+localStorage.getItem('longitude')],
    destinations: destinations,
    travelMode: google.maps.TravelMode.DRIVING,
    unitSystem: google.maps.UnitSystem.METRIC,
    durationInTraffic: true,
    avoidHighways: false,
    avoidTolls: false
},
function (response, status) {
    if(status === google.maps.DistanceMatrixStatus.OK) {
        $.each(response.rows[0].elements, function(key, value) {
            distances[key]={text:value.distance.text, value:value.distance.value};
        });
    }
});


Deze levert een object distances op welke ik een stukje verder in mijn code wil gebruiken. Het probleem wil echter dat ik in de volgende snippet wel het hele object kan zien (console.log) maar geen deel.


$.each(result.posts, function(key, value) {
    console.log(distances); //lukt wel
    console.log(distances[key].text]); //lukt niet => TypeError: distances[key] is undefined
});


Roep ik de text waarde misschien verkeerd aan?

Net na het afsluiten van "if(status === google.maps.DistanceMatrixStatus.OK) {" kan ik het volgende zonder problemen aanroepen: console.log(distances[0].text]); => lukt niet binnen de 2e loop.

Help?
In de 2e console.log staat een extra ] teveel..
Ook roep je distances (die weliswaar de juiste scope heeft waarschijnlijk) mogelijk te vroeg aan. Deze krijgt haar waarden uit een callback functie. Dit is dus een asynchrone call, je weet op voorhand niet wanneer deze de resultaten binnen heeft.

Mogelijk heb je hier iets aan.

Reageren