0

AJAX 呼び出しでデータを取り込む関数があります。他の関数でアクセスしたいオブジェクトを作成しています。そのため、データを別のグローバル オブジェクトに送信したいと考えています。

現在のJavaScriptは次のとおりです。

var foursquareMapData = [];

function MapData() {

    $.ajax({
        dataType: 'jsonp',
        url: 'https://s3.amazonaws.com/sxsw_trending/sxsw_trending.json',
        jsonp: "callback",
        jsonpCallback: "sxswTrending",
        success: function (data) {
            //console.log(data);
            // var foursquareMapData = [];
            for (var i = 0; i < data.Trending.length; i++) {

                var mapData = {
                    index: i + 1,
                    lat: data.Trending[i].lat,
                    lng: data.Trending[i].lng,
                    count: data.Trending[i].hereNow,
                    address: data.Trending[i].address
                }
                //console.log(mapData);
                foursquareMapData.push(mapData);
            }
            //console.log(foursquareMapData);
        }
    });

}
console.log(foursquareMapData);

「mapData」オブジェクトを foursqureMaData にプッシュしてもうまくいかないようです。私はこれを適切に行っていないのでしょうか?

4

1 に答える 1

0

これは、ajax呼び出しが終了する前にコンソールログを呼び出すためです。ajax成功関数の最後に出力してみてください。そうすれば、正しくなるはずです。

[編集]
ああ、成功関数の最後にすでにconsole.logがあるのを見ました。正しいデータが表示されませんでしたか?

[edit2]どこかで
電話しますよね?MapData()それはあなたのコードにないからです。

于 2013-02-17T19:04:18.627 に答える