-1
GoogleのジオコーディングAPIからフォーマットされた結果を格納する配列を使用しています。関数呼び出しの後、私はconsole.logを使って正しく動作している配列の内容を見ていますが、個々の要素にアクセスしようとすると "undefined"が返されます。配列の長さもチェックするとゼロになります。ここに私のコードは、(アドレス入力は3つのアドレスを格納したオブジェクトである)である:Javascriptグローバル配列は未定義を返します
function startGeocode(addressInput) {
var addressOut = [];
var outString = "";
var address = "";
for(var i = 0; i < addressInput.length; i++) {
address = addressInput[i].address + " " + addressInput[i].city + " " + addressInput[i].state + " " + addressInput[i].zip;
geocoder.geocode({'address':address}, function(results,status) {
if(status == 'OK') {
outString = "" + results[0].geometry.location;
outString = outString.replace(/\(|\)|\s/g,'');
outString = outString.replace(/\,/g,' ');
addressOut.push(outString);
} else {
outString = "Error: " + status;
addressOut.push(outString);
}
});
}
console.log(addressOut);
console.log(addressOut[0]);
console.log(addressOut.length);
}
3つのにconsole.logの呼び出しは次のように返します。
/* (Using a codeblock for readability)
Array[0]
0:"(a correctly formatted latitude and longitude)"
1:"(a correctly formatted latitude and longitude)"
2:"(a correctly formatted latitude and longitude)"
addressOut[0]: undefined
addressOut.length: 0
*/
だから私の質問は、なぜ私は、配列の長さ取得していますされます配列の要素を参照できないのはなぜですか?
多分この原因エラー – Mahi