使用下面的腳本我試圖創建一個名爲temptagarray的對象,該對象被填充到Tumblr博客上的所有標籤及其頻率。因此,它應該結束這樣看:變量範圍或回報問題(不知道是哪個)
{'performance': 10, 'installation': 5}
我知道正在創建的對象,它看起來是正確的(我可以把它打印出來在每個循環),但我無法弄清楚如何使用它後/在函數的外部,即在腳本的底部,我試圖將document.write()寫出來。這是一個全球/本地變量問題,回報問題還是我需要以某種方式解決它?
<script type="text/javascript">
var temptagarray = {};
var tags;
var tag;
function loadPosts() {
var key = "api_key=9I4rZAYQCbU1o5TSMZuyrlvXiQsNxKBicCJxNK5OKZ6G9pgdim";
var api = "https://api.tumblr.com/v2/blog/garrettlynch.tumblr.com/";
var retrieve_more = function (offset) {
$.getJSON(api + "posts?callback=?&filter=image&limit=20&offset=" + offset + "&" + key,function(data) {
//for each item (post) in the response
$.each(data.response.posts, function(i, item) {
//pull out the posts tags
tags = item['tags'];
//loop through the tags
for (i = 0; i < tags.length; i++)
{
tag = tags[i];
//if the tag already exists in the tag array
if (temptagarray[tag])
{
temptagarray[tag] = temptagarray[tag] + 1;
}
else
{
temptagarray[tag] = 1;
}
}
});
if (data.response.posts.length == 20) {
retrieve_more(offset + 20);
}
});
};
retrieve_more(0);
}
loadPosts();
document.write(JSON.stringify(temptagarray));
</script>
在此先感謝 加勒特第一
問題是Ajax中的** A **;在異步調用接近完成之前,您正在進行寫操作。 –