Javascript 我需要创建一个无限循环

Javascript 我需要创建一个无限循环,javascript,loops,infinity,Javascript,Loops,Infinity,出于我的目的,我需要创建一个循环,其中一个变量以这种方式循环: 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1... 这看起来很简单,但一个多小时我都在想怎么做。 我的目的是用这种方式移动星星 *.... .*... ..*.. ...*. ....* ...*. ..*.. .*... *.... *.... .*... ..*.. ...*. ....* 您可以使用setTimeout或setInterval执行此操作: let numbe

出于我的目的,我需要创建一个循环,其中一个变量以这种方式循环: 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1...

这看起来很简单,但一个多小时我都在想怎么做。 我的目的是用这种方式移动星星

*....
.*...
..*..
...*.
....*
...*.
..*..
.*...
*....
*....
.*...
..*..
...*.
....*

您可以使用setTimeout或setInterval执行此操作:

let number=0;
设增量=1;
常数from=0;
常数to=4;
const starDiv=document.getElementById(“star”);
函数printStar(编号){
常量文本=[0,1,2,3,4]。映射(
i=>(i==数字)?“*”:“-”
).加入(“”);
starDiv.innerText=文本;
}
函数循环(){
printStar(数字);
数字+=增量;
如果(数字==到){
增量=-1;
}else if(number==from){
增量=1;
}
}
常数时间=10;//步间10毫秒
设置间隔(循环、时间)

您可以使用setTimeout或setInterval执行以下操作:

let number=0;
设增量=1;
常数from=0;
常数to=4;
const starDiv=document.getElementById(“star”);
函数printStar(编号){
常量文本=[0,1,2,3,4]。映射(
i=>(i==数字)?“*”:“-”
).加入(“”);
starDiv.innerText=文本;
}
函数循环(){
printStar(数字);
数字+=增量;
如果(数字==到){
增量=-1;
}else if(number==from){
增量=1;
}
}
常数时间=10;//步间10毫秒
设置间隔(循环、时间)

将该循环编写为生成器(
函数*.yield
),然后在需要时使用它(
用于
)。当然,消费代码必须提供一些终止条件

函数*反弹(最小值、最大值){
而(1){
for(设i=min;imin;i--)
产量一;
}
}
步骤=10
对于(让x反弹(0,4)){
console.log(x)
如果(--步数===0)中断;

}
将该循环编写为生成器(
函数*.yield
),然后在需要时使用它(
用于
)。当然,消费代码必须提供一些终止条件

函数*反弹(最小值、最大值){
而(1){
for(设i=min;imin;i--)
产量一;
}
}
步骤=10
对于(让x反弹(0,4)){
console.log(x)
如果(--步数===0)中断;

}
您可以使用以下代码生成所需的数字模式。但是,您无法无限期地运行它,因为它会使浏览器崩溃

如果您想测试,我已经添加了使循环无限的指令

根据您的要求,
rep
变量的值越大越好

设最小值为0;//开始/分钟值
设max=4;//最大值
设dir=1;//计数方向(+1/-1)
设计数器=min;//你的反变量
设rep=24;//删除此行并将内部条件更改为true,以实现无限循环
做{
控制台日志(计数器);
dir=计数器===最大值?-1:计数器===最小值?1:dir;
计数器+=dir;

}而(代表-->0);//对于无限循环,将此表达式更改为true
您可以使用以下代码生成所需的数字模式。但是,您无法无限期地运行它,因为它会使浏览器崩溃

如果您想测试,我已经添加了使循环无限的指令

根据您的要求,
rep
变量的值越大越好

设最小值为0;//开始/分钟值
设max=4;//最大值
设dir=1;//计数方向(+1/-1)
设计数器=min;//你的反变量
设rep=24;//删除此行并将内部条件更改为true,以实现无限循环
做{
控制台日志(计数器);
dir=计数器===最大值?-1:计数器===最小值?1:dir;
计数器+=dir;

}而(代表-->0);//对于无限循环,将此表达式更改为true
您可以使用一个简单的计数器,然后使用
模8
获得迭代次数

let x = (i += direction) % 8;
let y = x > 4 ? 8 - x : x;
此示例甚至打印ascii艺术;)

设i=-1;
设方向=+1;
常数输出=[
"*....",
".*...",
"..*..",
"...*.",
"....*",
"...*.",
"..*..",
".*...",
"*....",
];
setInterval(函数(){
设x=(i+=方向)%8;
设y=x>4?8-x:x;
window.document.write(y+“”+out[x]+“
”;
}, 1000);
您可以使用一个简单的计数器,然后使用
模8
获得迭代次数

let x = (i += direction) % 8;
let y = x > 4 ? 8 - x : x;
此示例甚至打印ascii艺术;)

设i=-1;
设方向=+1;
常数输出=[
"*....",
".*...",
"..*..",
"...*.",
"....*",
"...*.",
"..*..",
".*...",
"*....",
];
setInterval(函数(){
设x=(i+=方向)%8;
设y=x>4?8-x:x;
window.document.write(y+“”+out[x]+“
”; }, 1000);
(函数(最小、最大、最大循环)
{
用于(变量循环=1;循环<代码>(函数(最小、最大、最大循环)
{

对于(var loop=1;将使浏览器崩溃的循环:-(您需要打印吗?停止点是什么?目的是什么?您想要
0,1,2,3,4,3,2,1,0,1…
(根据您的文本)还是
0,1,2,3,4,3,2,1,0,0,1…
(根据ascii艺术)?这将使浏览器崩溃:-(您需要打印吗?停止点是什么?目的是什么?您想要
0,1,2,3,4,3,2,1,0,1…
(根据您的文本)还是
0,1,2,3,4,3,2,1,0,0,1…
(根据ascii艺术)?