gpt4 book ai didi

javascript - 如何向后循环遍历字符串数组 x 次并在到达末尾时重新开始?

转载 作者:行者123 更新时间:2023-11-30 06:13:02 26 4
gpt4 key购买 nike

我正在尝试向后循环 11 次月份数组。基本上我有一个当前月份(2019 年 9 月),我想回到 11 个月,因此在 2018 年 10 月结束。我看过这么多代码片段,但没有一个能捕捉到整个“重新开始”部分。这一切的重点是将这些月份插入下拉菜单。因此有当前月份和前 11 个月。

我已经尝试过这个代码片段。它只是向前发展。当我将它设置到它向后移动的位置时,这个无限循环会杀死我的 Chrome。

这是我目前所拥有的:

var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var d = new Date();
console.log(d.getMonth() + " is the index");

var index = monthNames[d.getMonth()];
console.log(index + ' is the month');
let monthIndex = monthNames.indexOf(index);
var n = 11

var result = [];

for (var i = monthIndex, len = monthNames.length; i <= monthIndex + n; i++) {
result.push(monthNames[(i + len) % len]);
}


console.log(result.join(", "));

当我希望它从 9 月开始然后倒退并在 10 月结束时,它会在几个月内向前发展。

感谢任何帮助。谢谢!

最佳答案

与上面建议的没有太大区别,但更容易理解

var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var currentDate = new Date();
var currentMonthIndex = currentDate.getMonth();
var result = [];
var monthLength = 12;

for (var i = currentMonthIndex; i < monthLength; i--) {
result.push(monthNames[i]);

if (result.length === monthLength) {
break;
}

if (i === 0) {
i = monthLength;
}
}


console.log(result.join(", "));

关于javascript - 如何向后循环遍历字符串数组 x 次并在到达末尾时重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com