Я постоянно вызываю функцию API Google в цикле. Каждый раз я хочу удалить один элемент массива адресов.
for(var i = 0; i < AddressObject.addressToArray.length; i++ ){
srPerformGeocode(AddressObject);
console.log(AddressObject.addressToArray);
AddressObject.addressToArray.splice(0, 1);
}
// --------------------------------------------------------------
// Perform geocoding
// --------------------------------------------------------------
function srPerformGeocode(AddressObject)
{
address = AddressObject.addressToArray.join(",");
console.log(AddressObject.addressToArray);
if (geocoder){
geocoder.geocode({'address': address.trim() }, function (results, status)
{
if (status == google.maps.GeocoderStatus.OK){
console.log("geocoded " + AddressObject.addressToArray);
// Do something
}
else{
alert("FAIL");
}
});
}
}
Кажется, что происходит то, что цикл выполняется i раз, а функция srPerformGeocode выполняется i раз каждый раз, используя последнее значение цикла i.
['field1' ,'field2' ,'field3' ,'field4' ]
['field1' ,'field2' ,'field3' ]
['field1' ,'field2' ]
['field1' ]
geocoded field1
geocoded field1
geocoded field1
geocoded field1