Получение тегов и количества тегов с помощью канала tumblr api json [jquery] - PullRequest
1 голос
/ 02 июля 2011

У меня возникла небольшая проблема с API Tumblr.В настоящее время я получаю каждый тег из всех своих сообщений и храню его в массиве.Однако это означает, что если массив используется более одного раза, он удваивается.Я хочу иметь возможность хранить тег только один раз, а также хранить количество его появлений.Есть идеи?Я думал, что массив объектов будет работать, но я борюсь с разработкой, если тег уже был помещен в массив и как обновить значение «count».

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/

1 Ответ

0 голосов
/ 21 сентября 2011

Вы можете сделать что-то вроде этого:

obj[tag] = count;

и когда вы получаете новые теги, используйте что-то вроде

if( obj[newtag] ){
  obj[newtag] += 1;
}else{
  obj[newtag] = 1;
}
...