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;