循环内跳过月份值

Yas*_*nik 1 javascript

我有一个函数generateMonths(),理想情况下需要生成一个包含月份信息的对象数组,如下所示:

[{id: "2020-01", name: "Jan-2020"}, {id: "2020-02", name: "Feb-2020"},...]
Run Code Online (Sandbox Code Playgroud)

问题是下面的代码总是跳过二月

[{id: "2020-01", name: "Jan-2020"}, {id: "2020-02", name: "Feb-2020"},...]
Run Code Online (Sandbox Code Playgroud)

这是相同的工作小提琴

use*_*663 5

可能问题与默认使用的月份日期有关...(打印生成的日期来检查)你将会遇到问题,特别是今天;)(今天是第 30 天,二月没有这一天)。

使用 newDate.setDate(1) 将日期更改为 1;在生成的日期对象上,这里应该有效:

function generateMonths() {
  const newDate = new Date();
  newDate.setDate(1);
Run Code Online (Sandbox Code Playgroud)

  • @YashwardhanPauranik `new Date()` 为您提供了**今天**(或运行代码时的任何特定日期)的 Date 实例。今天是12月30日,二月没有30号。 (2认同)