Javascript 使用shift和concat显示数组的不同值

Javascript 使用shift和concat显示数组的不同值,javascript,arrays,function,loops,Javascript,Arrays,Function,Loops,我的js中有这个: const allPromos=document.querySelector('.promo'); 常量标题=[“文本编号一”,“文本编号二]; 函数showttitle(){ const first=titles.shift(); this.titles=titles.concat(第一个); allPromos.textContent=标题; } window.setInterval(()=>{ showttitle(); }, 2000); 在我的HTML中,我有

我的js中有这个:

const allPromos=document.querySelector('.promo');
常量标题=[“文本编号一”,“文本编号二];
函数showttitle(){
const first=titles.shift();
this.titles=titles.concat(第一个);
allPromos.textContent=标题;
}
window.setInterval(()=>{
showttitle();
}, 2000);
在我的HTML中,我有


我希望数组的不同值在HTML上每隔2秒显示一次。 因此,首先显示“文本编号1”,然后转到“文本编号2”,然后再转到“文本编号1”

我在Nuxtjs中看到了这一点,并且工作得很好。我想把它应用到香草js上。但是缺少了一些东西。它显示文本,但只显示一次…我应该向其添加循环吗? 那就太复杂了不? 我只是想找到使用现代javascript最简单的方法。 你认为现在最好的方法是什么? 谢谢你的想法

let allPromos=document.querySelector('.promo');
让标题=[“文本编号一”,“文本编号二];
设i=0
函数showttitle(){
//循环的i%titles.length
//我买了一枚cicle
allPromos.textContent=标题[i%titles.length];
我++
}
window.setInterval(()=>{
showttitle();
}, 1000);

您可以将数组的重复概括为一个数组。这是一个非常简单的方法,使用它可以无限地给出数组值,始终从一开始就重新启动:

function* repeat(arr) {
  while (true)           //repeat forever
    yield* arr.values(); //delegate to array iterator
}
通过这种广义重复,您只需从迭代器中获取下一项并显示它:

/*库代码*/
功能*重复(arr){
while(true)
收益率*arr.值();
}
/*/库代码*/
const allPromos=document.querySelector('.promo');
常量标题=[
“文本编号1”,
"第二号文本",,
"第三号文本",,
“文本编号4”,
“文本编号5”
];
功能showTitle(标题){
allPromos.textContent=标题;
}
const it=重复(标题);
window.setInterval(()=>{
const title=it.next().value;
展览名称(名称);;
}, 1000);

this.titles=titles.concat(第一个)->
titles=titles.concat(第一个)
不需要
这个
实际上,那么这个代码就没有什么意义了。您仍然不应该使用此
,但整个操作都很奇怪。您只需要获取第一项,显示它,然后将其添加到数组的末尾。无需
concat
,也无需覆盖数组,也无需将整个数组分配给
。textContent
您是对的@VLAZ。在第一部分中,我更改了它,然后在将它放在这里之前忘记了编辑它。我想我只是想添加新的数组方法,使其与循环相同