使用 tumblr api json feed 获取标签和标签计数 [jquery]

发布于 2024-11-18 07:42:19 字数 1101 浏览 4 评论 0原文

我在使用 tumblr api 时遇到了一些棘手的问题。我目前正在获取所有帖子中的每个标签并将其存储在一个数组中。然而,这意味着如果一个数组被多次使用,它就会加倍。我希望能够只存储标签一次,并存储它出现的次数。有什么想法吗?我认为对象数组可以工作,但我正在努力弄清楚标签是否已放入数组中以及如何更新“计数”值。

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/

I'm having a bit of a tricky problem with the tumblr api. I am currently getting every tag from all my posts and storing it in an array. However that means that if an array is used more than once it doubles up. I want to be able to just store a tag once only and also store how many times it's appeared. Any ideas? I was thinking an object array would work but I am struggling with working out if the tag has already been put into the array and how to update the "count" value.

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/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一杯敬自由 2024-11-25 07:42:19

你可以这样做:

obj[tag] = count;

当你获得新标签时,使用类似的东西

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

You could do something like this:

obj[tag] = count;

and when you get new tags use something along the lines of

if( obj[newtag] ){
  obj[newtag] += 1;
}else{
  obj[newtag] = 1;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文