try below code
let startDate = new Date();
const lastDate = new Date();
lastDate.setMonth(11,31);
const timeArray = [];
while(startDate <lastDate){
timeArray.push(startDate);
console.log(startDate)
startDate =new Date(startDate.setMonth(startDate.getMonth()+1))
}
console.log('==================================');
console.log(timeArray)
But result shows as below
Thu Nov 03 2022 09:12:03 GMT+0530 (India Standard Time)
Sat Dec 03 2022 09:12:03 GMT+0530 (India Standard Time)
==================================
[
Sat Dec 03 2022 09:12:03 GMT+0530 (India Standard Time)
Tue Jan 03 2023 09:12:03 GMT+0530 (India Standard Time)
]
When I console the 'startDate' just after the array push it shows as expected , But when I console log the time array it has been shifted . Can someone explain this?