ich einige dumme Frage, die sich für die ich weiß, ich bin etwas fehlt.Einfache Array Länge -Immer 0 auch wenn Inhalt vorhanden
Ich habe ein leeres Array, in dem ich Sachen mit .push() -Methode am drückt. Jetzt
Wenn ich kompletten Array drucken, erhalte ich Werte, aber wenn ich array.length verwenden, dann ist es immer Null. Ich weiß, es ist sehr albern etwas, das ich vermisse.
var markersToPush = [];
for (var i = 0; i < contactList.length; i++) {
console.log('conatcat addres', contactList[i].MailingStreet);
geocoder.geocode({
'address': contactList[i].MailingStreet
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
markersToPush.push(marker.getPosition());
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
console.log('markers to push-->', markersToPush);
console.log('markers length-->', markersToPush.length);
Für Ergebnis in log -
Ich habe schon andere Fragen im Zusammenhang geprüft -
- Javascript array returns length as 0 always even there are elements in it
- Javascript array returns length as 0 always even there are elements in it
- Array Length returns 0
Bitte Code schreiben * hier * – Li357
relevanten Codeabschnitte –
Bitte Postleitzahl als Text hinzugefügt, kein Bild von Code. Wie auch immer, ich denke, Sie werden feststellen, dass das Array zu dem Zeitpunkt, zu dem Sie es protokollieren, leer ist, aber dass es Daten enthält, wenn Sie es in der Konsole erweitern. (Wenn Sie sich 'JSON.stringify (markersToPush)' das würde es bestätigen.) Sie rufen eine asynchrone Funktion, 'geocoder.geocode()', und die Callback-Funktion, die Sie es passieren wird nicht mit den Daten aufgerufen werden, bis nachdem die Schleife endet und nach den 'console.log()' Anweisungen. Siehe [diese Frage] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-a-asynchronous-call). – nnnnnn