@timofeus91
Junior Frontend Developer

Как правильно работать с циклом for?

Всем доброго дня! Есть задача получить год и потом добавить этот год в массив , а также будущие и предудщие 5 лет тоже. Решил воспользоваться циклом for, но в массив попадает каждый раз только 2021. Можно ли как-то осуществить это без объявления new Data в теле цикла повторно( а в моем случае это придется делать два раза - для цикла на года вперед и для цикла на годы назад )? Сейчас как понимаю let newYear равняется ссылке на константу и при каждой итерации в newYear тоже значение что и ранее и поэтому массив состоит из сплошных цифр 2021.

export const autoData = () => {
  const year = new Date().getFullYear();

  const firstYears = [];

  for (let i = 0; i < 5; i++) {
    let newYear = year;
    firstYears.push((newYear -= 1));
  }
  const years = [...firstYears, year];
};
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
const currentYear = new Date().getFullYear();
const years = [];
for (let year = currentYear - 5; year <= currentYear + 5; year++) {
  years.push(year);
}

years // [2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027]


Сейчас у вас ошибка в том, что внутри цикла на каждой итерации, снова и снова newYear сначала делается равным текущему зачем-то. Может, хотели сделать это только один раз, снаружи цикла?
for (let i = 0; i < 5; i++) {
    let newYear = year; // <--- тут ошибка
    firstYears.push((newYear -= 1));
  }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы