Javascript 跳过循环中附加的相同元素

Javascript 跳过循环中附加的相同元素,javascript,html,loops,append,Javascript,Html,Loops,Append,我有脚本通过回调加载数据,如下所示: for(i = 0; i < allposts.length; i++){ .... if ((i >= 0) && (i < 3)) { a += '<li><a href="'+link+'">'+post-title+'</a></li>'; } } list = a; document.getElementById('portf

我有脚本通过回调加载数据,如下所示:

for(i = 0; i < allposts.length; i++){
    ....
    if ((i >= 0) && (i < 3)) {
        a += '<li><a href="'+link+'">'+post-title+'</a></li>';
    } 
}
list = a;
document.getElementById('portfolio-list').innerHTML += list;
您可以看到:
link2被重复
。我想抓住每一个循环,如果重复的话就断开

这意味着我的结果如下:

<li><a href="link1">title1</a></li>
<li><a href="link2">title2</a></li>
<li><a href="link3">title3</a></li>

<li><a href="link4">title4</a></li>
<li><a href="link5">title5</a></li>

  • 如何使用Javascript实现这一点?

    试试这个,我不知道您是如何更新
    c
    变量的

    var temp =[];
    for(i = 0; i < allposts.length; i++){
        ....
        if ((i >= 0) && (i < 3)) {
            if(temp.indexOf(link) == -1)
            {
              a += '<li><a href="'+link+'">'+post-title+'</a></li>';
               temp.push(link);
            }
    
        } 
    }
    
    var-temp=[];
    对于(i=0;i=0)和&(i<3)){
    如果(链接的温度索引)=-1)
    {
    a+='
  • '; 温度推送(链接); } } }
    试试这个,我不知道你是如何更新
    c
    变量的

    var temp =[];
    for(i = 0; i < allposts.length; i++){
        ....
        if ((i >= 0) && (i < 3)) {
            if(temp.indexOf(link) == -1)
            {
              a += '<li><a href="'+link+'">'+post-title+'</a></li>';
               temp.push(link);
            }
    
        } 
    }
    
    var-temp=[];
    对于(i=0;i=0)和&(i<3)){
    如果(链接的温度索引)=-1)
    {
    a+='
  • '; 温度推送(链接); } } }
    var links={};
    对于(i=0;i=0)&&(i<3)&&&!links[link]){
    a+='
  • '; links[link]=true; } }
    var links={};
    对于(i=0;i=0)&&(i<3)&&&!links[link]){
    a+='
  • '; links[link]=true; } }
    这是我在之前的评论中想到的一个模板:

    var shownLinks = [];
    for(i = 0; i < allposts.length; i++){
        ....
        if ((i >= 0) && (i < 3)) {
            // Only show a link, if it wasn't before
            if(shownLinks.indexOf(link) == -1) {
                a += '<li><a href="'+link+'">'+post-title+'</a></li>';
                // Add the link to the array
                shownLinks.push(link);
            }
        } 
    }
    list = a;
    document.getElementById('portfolio-list').innerHTML += list;
    
    var shownLinks=[];
    对于(i=0;i=0)和&(i<3)){
    //只显示一个链接,如果以前没有
    if(shownLinks.indexOf(link)=-1){
    a+='
  • '; //将链接添加到数组中 shownLinks.push(链接); } } } 列表=a; document.getElementById('portfolio-list')。innerHTML+=list;
    这是我在之前的评论中想到的一个模板:

    var shownLinks = [];
    for(i = 0; i < allposts.length; i++){
        ....
        if ((i >= 0) && (i < 3)) {
            // Only show a link, if it wasn't before
            if(shownLinks.indexOf(link) == -1) {
                a += '<li><a href="'+link+'">'+post-title+'</a></li>';
                // Add the link to the array
                shownLinks.push(link);
            }
        } 
    }
    list = a;
    document.getElementById('portfolio-list').innerHTML += list;
    
    var shownLinks=[];
    对于(i=0;i=0)和&(i<3)){
    //只显示一个链接,如果以前没有
    if(shownLinks.indexOf(link)=-1){
    a+='
  • '; //将链接添加到数组中 shownLinks.push(链接); } } } 列表=a; document.getElementById('portfolio-list')。innerHTML+=list;
    变量
    c
    在哪里?这导致打印link1等。请将已显示的链接存储在数组中,并在添加到输出之前检查该数组中是否包含新链接。@dbasic:抱歉。它不是数组。更新了。@CMate:给出下面的答案,我在答案中描述了我的想法。
    c
    变量在哪里?这导致打印link1等。请将已显示的链接存储在数组中,并在添加到输出之前检查该数组中是否包含新链接。@dbasic:抱歉。它不是数组。更新了。@CMate:请在下面给出您的答案,我在答案中描述了我的想法。
    var shownLinks = [];
    for(i = 0; i < allposts.length; i++){
        ....
        if ((i >= 0) && (i < 3)) {
            // Only show a link, if it wasn't before
            if(shownLinks.indexOf(link) == -1) {
                a += '<li><a href="'+link+'">'+post-title+'</a></li>';
                // Add the link to the array
                shownLinks.push(link);
            }
        } 
    }
    list = a;
    document.getElementById('portfolio-list').innerHTML += list;