私はJavaScriptで遊んでいますが、よくわからないことがあります。私はここにこのコードを持っています:
$.getJSON('data.json', function(obj) {
for( var p in obj.List )
{
datas['id'] = obj.List[p].ListingId;
datas['area'] = area;
//console.log(datas);
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': datas['area'] }, function(results,status)
{
if(status == google.maps.GeocoderStatus.OK)
{
var latlng = new google.maps.LatLng(results[0].geometry.location.Ya, results[0].geometry.location.Za);
datas['latlng'] = latlng;
//console.log(datas);
}
});
}
});
では、forループが3回実行されたとします。最初の「console.log(datas)」行のコメントを外してページを実行すると、コンソールに、独自の「id」と「area」を持つ3つの「datas」オブジェクトが表示されます。ジオコードコールバックの最初の「console.log(datas)」にコメントし、2番目の「console.log(datas)」のコメントを外すと、コードを実行すると、3つの「datas」オブジェクトすべてが「 id "、" area "、および"latlng"。私は3つの「データ」オブジェクトがそれら自身のlatlngsで異なるだろうと思っていましたが。
何か案は?