我遇到了我收到的Instagram API響應。在檢查重複項後,我只是將每個標記調用響應的數據對象推入空結果數組中。Instagram API響應 - 數組長度奇怪
由此產生的數組奇怪。在控制檯中,結果數組顯示了完整的結構,並表示長度爲5,如預期的那樣。當記錄results.length時,它顯示的長度爲零。我用虛擬對象創建了一個測試數組作爲比較,以顯示它應該如何表現。
我的控制檯的屏幕截圖如下。
奇怪的是,results.length似乎在for循環檢查重複項時正常工作。
var token = 'MY_TOKEN',
userid = MY_ID,
num_photos = 33,
hashtags = ['website', 'engraving', 'weddinginvitations', 'customstationery'],
results = [],
test_results = [{id:1},{id:2},{id:3}];
// LOOP THROUGH EACH HASH
for(i = 0; i < hashtags.length; i++){
// MAKE AJAX CALL PER HASH
$.ajax({
url: 'https://api.instagram.com/v1/tags/' + hashtags[i] + '/media/recent',
dataType: 'jsonp',
type: 'GET',
data: {access_token: token, count: num_photos},
success: function(response){
// CHECK EACH IMAGE IN THE RESPONSE DATA AND REMOVE DUPLICATES
for(x in response.data){
var exists = false;
for(var i=0;i<results.length;i++){
if(results[i].id === response.data[x].id){
exists = true;
break;
}
}
if(exists === false){
results.push(response.data[x]);
}
}
},
error: function(data){
console.log(response);
}
});
}
console.log(results);
console.log(results.length);
console.log(test_results);
console.log(test_results.length);
啊!這是有道理的。嗯,看起來我可能無法繼續使用成功函數外的結果數組。我正計劃按創建日期對數組進行排序,然後將它們輸出到無序列表中。 – user3173756