2011-07-02 128 views
1

我对tumblr api有点棘手的问题。我目前正在从我的所有帖子中获取每个标签并将其存储在一个数组中。然而,这意味着如果一个数组被多次使用,它就会增加一倍。我想只能存储一次标签,并且存储多少次。有任何想法吗?我在想一个对象数组可以工作,但我正在努力解决这个标记是否已经放入数组以及如何更新“count”值。使用tumblr api json feed获取标签和标签数量[jquery]

var allTags = []; 
var start = 0; 
var cleanTags = []; 

$(function() { 


tumblrTag = function(tag,count) { 
    this.Tag = tag; 
    this.Count = count;   
} 

getTags() 

}); 

function getTags() { 

    var tumblrApi = 'http://blog.rainbird.me/api/read/json?callback=?&num=50&start=' + start; 

     $.getJSON(tumblrApi, function (data) { 

     $(data.posts).each(function (i, post) { 
      $(post.tags).each(function (i, tag) { 

      if (typeof (tag) === 'string') { 

      newTag = new tumblrTag(tag, "1"); 

      allTags.push(newTag); 


      } 

      }); 
     }); 
     if (start + 50 < data['posts-total']) { 
      start = start + 50; 
      getTags(); 
     } else { 
     console.log("complete"); 
     console.log(allTags); 
     } 
     }); 

} 

http://jsfiddle.net/k2UML/

回答

0

你可以做这样的事情:

obj[tag] = count; 

,当你获得新的标签使用沿着

if(obj[newtag]){ 
    obj[newtag] += 1; 
}else{ 
    obj[newtag] = 1; 
} 
东西线