javascript - For循环不打印所有数组

标签 javascript arrays for-loop

var dd = new Date();
var nn = dd.getDay();

console.log(nn);

var dates = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
var ordered = [];
for(var i = 0; i < dates.length; i++) {
         console.log(nn+i)
         ordered.push(dates[nn+i])
}

console.log(ordered);

嗨嗨,我遇到了这个问题。现在我可以获取当前日期,在数组中搜索并从那天开始打印。但是,问题是前几天没有打印。

上面的代码将打印一个包含 7 个元素的数组:

["Miércoles", "Jueves", "Viernes", "Sábado", undefined, undefined, undefined]

nn+1 进行从 3 到 9 的迭代,其中 7、8 和 9 为空白。如果您想知道为什么我将“Domingo”(星期日)作为数组的第一个元素,是因为getDay()有效。

在不修改数组长度的情况下,如何添加其他未打印的日期?答案可能很明显,但我被困住了......

提前致谢。

最佳答案

您可以使用模运算符轻松修复此问题,以使索引环绕。因为您将日期添加到当前索引中,所以您超出了数组的限制,并且 undefined 被添加到数组中。

var dd = new Date();
var nn = dd.getDay();

console.log(nn);

var dates = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
var ordered = [];
for(var i = 0; i < dates.length; i++) {
         console.log((nn+i) % dates.length)
         ordered.push(dates[(nn+i) % dates.length])
}

console.log(ordered);

关于javascript - For循环不打印所有数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45187917/

相关文章:

javascript - For循环数组设置元素等于一个变量

java - 我对这个嵌套 for 循环没有想法了

javascript - 不安全的 JavaScript 尝试使用 URL 访问框架 - 在同一域中

javascript - 错误 : spawn cmd ENOENT at Process. ChildProcess._handle.onexit(内部/child_process.js:240:19)

javascript - 在 iPad 中拖放 Javascript

c++ - for循环内的if语句未执行

JavaScript 阶乘递归

javascript - 在 JavaScript 中回显 PHP 数组

c++ - 如何在 C++ 中将动态二维字符串数组作为参数传递

javascript - 来自字符串函数的图像