1
我有一個函數foo
,它接收一個名爲locations
的對象數組,並具有包含訪問Foursquare API的信息的字符串fourSquareUrl
。我從API獲取數據並將其推送到locationData
陣列。無法訪問陣列的任何索引,但在完全登錄時陣列能夠正常工作
當我嘗試訪問數組的索引locationData[i]
時,我得到未定義的值。但是當我console.log(locationData);該數組顯示正確。謝謝你的幫助!
var locationData = [];
function foo(locations) {
for (x in locations) {
var fourSquareUrl = 'API information';
$.getJSON(fourSquareUrl, function(data) {
var foursquareLocation = data.response.venues;
if(foursquareLocation) {
var item = foursquareLocation[0];
if (item) {
var address = item.location.formattedAddress;
locationData.push(address);
}
else {
var noAddress = "No location data available";
locationData.push(noAddress);
}
}
})
}
}
// works correctly
console.log(locationData);
// results in 'undefined'
console.log(locationData[0]);
是是異步函數,你應該添加的console.log的回調函數內(塊'$ .getJSON(fourSquareUrl,功能(數據){')來獲取結果。 – vitomd
太好了,謝謝! – rdtn