我需要你的帮助。我通过ajax从Tumblr获取哈希标签数据,然后我循环输出它们。在我输出标签之前我想做一些过滤,如果我有4个相同的散列标签,我需要输出一次。
以下是没有过滤的示例。
$.ajax({
url: "http://api.tumblr.com/v2/blog/testhermes.tumblr.com/posts",
dataType: 'jsonp',
data: {
api_key : "d01TZzpbq12cD7Zv7dM4EwLndkAAIEsExnLl9PNvsHYuyuDwKq"
},
success: function(results){
var posts = results.response.posts;
var text ='';
for (var i in posts)
{
p = posts[i];
a = p.tags;
for(var j in a) {
c = a[j];
text += '<a href="'+c+'">'+ c +'</a><br>';
$("body").append(text);
}
}
}
});
谢谢
答案 0 :(得分:2)
只需跟踪您在对象中已经看过的标记,然后只有在您之前看不到该标记时才输出该链接。
var seen_tags = {};
for (var i in posts)
{
p = posts[i];
a = p.tags;
for(var j in a) {
c = a[j];
if(!(c in seen_tags)) {
text += '<a href="'+c+'">'+ c +'</a><br>';
$("body").append(text);
seen_tags[c] = true;
}
}
}
答案 1 :(得分:2)
你只需要在数组中保存值,并在每次插入项目时检查它是否存在于数组中。
$.ajax({
url: "http://api.tumblr.com/v2/blog/testhermes.tumblr.com/posts",
dataType: 'jsonp',
data: {
api_key : "d01TZzpbq12cD7Zv7dM4EwLndkAAIEsExnLl9PNvsHYuyuDwKq"
},
success: function(results){
var posts = results.response.posts;
var text ='';
var arr = [];
for (var i in posts)
{
p = posts[i];
a = p.tags;
for(var j in a) {
c = $.trim(a[j]);
if(jQuery.inArray(c, arr) == -1)
{
arr.push(c);
var text = '<a href="'+c+'">'+ c +'</a><br>';
$("body").append(text);
}
}
}
}
});
以下是JS FIDDLE链接。