新来的!我想从今天开始循环(例如:“Thursday”),然后在“Wednesday”停止循环.任何帮助是赞赏!谢谢
let days = [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
];
let date = new Date();
let today = date.getDay();
let result = [];
for (let i = today; i < days.length; i++) {
result.push(days[i]);
}
return result[index];
};```
2条答案
按热度按时间mu0hgdu01#
为简单起见,可以从
today
循环到days.length
,然后再从0
循环到today
。41zrol4v2#
我来是因为我也有同样的问题。感谢上帝,我刚刚发现了一个可以在一个
for
循环中完成的解决方案。它是如此简单,我很惊讶我花了这么长时间思考它。😅解决方案
说明
如果你已经理解了上面的解决方案,那么你不需要继续阅读。但是如果上面的解决方案看起来有点混乱/奇怪,那么希望这个解释能帮助你。
以下代码可用于从开始到结束循环元素:
如果我们使用
remainder
operator(也称为模运算符)索引数组,也可以得到相同的结果。这是因为对于任何整数被除数
N
,除以一个 * 更大 * 的整数除数M
,余数将 * 总是 * 是N
。例如,4/7的余数总是4。同样,0/7的余数将始终为0。因此,尽管我们在循环中引入了remainder
运算符,但没有任何变化。现在,由于数学的原理,余数永远不会大于除数。对于整数除数
M
,余数R
只能在0到M - 1的范围内。见下表:| 操作|其余部分|
| --|--|
| 0 / 3| 0 |
| 三分之一| 1 |
| 三分之二| 2 |
| 三分之三| 0 |
| 4 / 3| 1 |
| 5 / 3| 2 |
| 6 / 3| 0 |
这里,除数是3。当我们递增被除数时,余数从0循环到3 - 1。这是一种数学现象,我们可以用它来从任何一个起点循环一个数组。
如果可以使用下面的语句从开始到结束遍历数组:
然后--因为当被除数(在我们的例子中,索引
i
)足够大时,remainder
运算符会“循环”回0--我们也可以使用下面的语句来开始 * 数组中的任何地方 *,并继续直到到达前一项:我们所要做的就是移动循环的起点。
remainder
操作符负责其余部分。希望这对你有帮助。