Вы хотите вычесть только 1 месяц, поэтому не используйте i
, потому что это динамическое значение.Первый цикл не нужно вычитать, так что делайте, как показано ниже
Обновлено: вам нужно переместить объявление текущей даты в цикле, потому что setMonth изменит ваше значение даты, поэтому необходимо вызывать текущую дату каждый раз, когда вы делаете цикл ...
function formatDate(date) {
date = new Date(date);
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return day + ' ' + monthIndex + ' ' + year;
}
for ( let i=11; i>=0; i--) {
let now = new Date();
let newdate = now.setMonth(now.getMonth() - i);
console.log(formatDate(newdate ));
}