Список дат и месяцев

Помогите с реализацией функции, которая будет возвращать список последующего месяца от текущего дня.

function getListDays() {
  let dates = [];
  let today = new Date();
  let lastDayOfMonth = new Date(today.getFullYear(), today.getMonth() + 1, 1)
  let j = 30;

  for (let i = today.getDate(); i <= lastDayOfMonth.getUTCDate(); i++) {
    let param = {};
    param['day'] = i;
    param['month'] = today.getMonth();
    dates.push(param);
  }

  if (j > 0) {
    for (let i = 1; i < j; i++) {
      let param = {};
      param['day'] = i;
      param['month'] = today.getMonth() + 1;
      dates.push(param);
      j--;
    }
  }
  return dates;
}

console.log(getListDays());

вот что у меня вышло есть ли более лучшее решение?


Ответы (1 шт):

Автор решения: Laukhin Andrey

У объекта Date есть метод setDate(), при помощи которого можно установить дату на следующий день: date.setDate(date.getDate() + 1)
Осталось повторить это 30 раз и заполнить массив:

let date = new Date();
let days = [];

for (let i = 0; i < 30; i++) {
  days.push({
    day: date.getDate(),
    month: date.toLocaleString("en-US", { month: "long" })
  });

  date.setDate(date.getDate() + 1);
}

console.log(days);

Еще вариант:

let d = new Date();

let days = Array(30).fill({}).map(
  $ => new Object({day: d.getDate(), month: d.getMonth()}, d.setDate(d.getDate() + 1))
);

console.log(days);

→ Ссылка