由于我对JS还是很陌生,所以我认为向经验丰富的编码人员询问改善我的编码习惯和学习有效基础知识的方法不会有什么坏处。

因此,我想知道是否可以在一个循环中运行2行代码x次数,然后在该块的其余部分运行x次数。

所以代替这个:

for (let i = 0; i <= 10; i++) {
    this.shapes[i].x -= 1;
    this.shapes[i].draw(this.ctx);
}

for (let i = 0; i <= 10; i++) {
    this.shapes[i].x += 1;
    this.shapes[i].draw(this.ctx);
}


是否存在这样的东西?

for (let i = 0; i <= 10; i++) {

    //run this section i amount of times
    this.shapes[i].x -= 1;
    this.shapes[i].draw(this.ctx);

    //then run this i amount of times
    this.shapes[i].x += 1;
    this.shapes[i].draw(this.ctx);
}

最佳答案

两个循环的主体之间的唯一区别似乎是一个声明。

您可以使用一些数学方法来确定索引,并使用一些逻辑语句来确定该值是应该递增还是递减,下面是一个示例:

for (let i = 0; i <= 21; i++) {
    const index = i % 11;
    this.shapes[index].x += (i > 10) ? 1 : -1;
    this.shapes[index].draw(this.ctx);
}

10-05 20:53
查看更多