Пропустить тот же элемент, добавленный из цикла

0

У меня есть сценарий для загрузки данных с помощью обратного вызова, например:

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;

Когда для конца цикла будет добавлено 3 сообщения. Это означает, что каждый цикл у нас есть:

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

Для 2 циклов (используя += list), например, у меня есть:

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

<li><a href="link2">title2</a></li>
<li><a href="link4">title4</a></li>
<li><a href="link5">title4</a></li>

Вы можете видеть: link2 is repeated. Я хочу поймать на каждом цикле и сломаться, если он повторяется.

Это означает, что у меня есть результат:

<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?

  • 1
    Где переменная c ? что приводит к печати ссылки1 и т. д.
  • 0
    Сохраните уже показанные ссылки в массиве и проверьте, содержится ли новая ссылка в этом массиве, прежде чем добавлять к выводу.
Показать ещё 4 комментария
Теги:
loops
append

3 ответа

3

Вот шаблон, о котором я думал в своем комментарии ранее:

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;
  • 0
    это может работать. жди моего чека. Спасибо
1
var links = {};
for(i = 0; i < allposts.length; i++){
    ....
    if ((i >= 0) && (i < 3) && !links[link]) {
        a += '<li><a href="'+link+'">'+post-title+'</a></li>';
        links[link] = true;
    } 
}
1

попробуйте это, я не знаю, как вы обновляете переменную 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);
        }

    } 
}
  • 0
    Ссылка ловится и меняется автоматически от i. Не ссылка [c] ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню