Я столкнулся с какой-то глупой проблемой, из-за которой я знаю, что мне чего-то не хватает.
У меня есть пустой массив, в который я нажимаю материал, используя метод .push().
Теперь, когда я печатаю полный массив, я получаю значения, но когда я использую array.length, он всегда равен нулю. Я знаю, что это очень глупо, чего мне не хватает.
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);
Для результата в журнале -
Я уже проверил другие связанные проблемы -
JSON.stringify(markersToPush)
, это подтвердит это.) Вы вызываете асинхронную функциюgeocoder.geocode()
, и функция обратного вызова, которую вы ей передаете, не будет вызываться с данными до тех пор, пока цикл не завершится и после операторовconsole.log()
. См. этот вопрос. - person nnnnnn   schedule 18.07.2016array(10)
. Они числовые? - person Will   schedule 18.07.2016length
, а скорее свойствоsize
. - person Boaz - CorporateShillExchange   schedule 18.07.2016console.log('markers to push-->', markersToPush.toString());
, и вы увидите снимок, и он должен быть пустым. - person charlietfl   schedule 18.07.2016