address というプロパティを持つ配列を渡すとそのオブジェクトに latln プロパティ(緯度経度)を追加してコールバックを実行する関数を書いてみた。

var geoData = [ { address: '東京都千代田区永田町1−7−1', html: '国会議事堂' } ]; codeAddress(geoData, callback); function callback(data) { console.log(geoData); > 0: Object > address: "東京都千代田区永田町1−7−1" > html: "国会議事堂" > latln: P > A: 139.74485800000002 > k: 35.675888 }; function codeAddress(data) { var counter = 0; var len = data.length; var geocoder = new google.maps.Geocoder(); data.forEach(function( value, index ) { geocoder.geocode({ address: data[index].address }, function( results, status ) { if( status == google.maps.GeocoderStatus.OK ) { var result = results[ 0 ].geometry.location; data[index].latln = result; counter += 1; if(counter >= len) { callback(data); } } else { throw new Error(['緯度経度の取得に失敗']); } }); }); };