Вместо того, чтобы иметь массив всех чисел, сделайте его массивом массивов, а затем напечатайте его в отдельных строках. Примерно так должно работать:
var monthsWithDays = [];
for (var x = 0; x < 12; x++) {
var days = [];
for (var i = 1; i <= 31; i++) {
days.push(i)
}
monthsWithDays.push(days);
}
monthsWithDays.forEach(daysArray => console.log(daysArray));
Если вы хотите просто строку с символами новой строки, то что-то вроде этого должно работать:
monthsWithDays.map(daysArray => daysArray.join(",")).join("\n")
EDIT:
Теперь я вижу, что вы пытаетесь сделать со своими splice
вещами. Я не думаю, что у вас есть правильный подход здесь. Но приведенный выше код может быть исправлен для этого:
function daysInMonth (month, year) {
return new Date(year, month, 0).getDate();
}
var monthsWithDays = [];
for (var x = 1; x <= 12; x++) {
var days = [];
for (var i = 1; i <= daysInMonth(x, 2019) ; i++) {
days.push(i)
}
monthsWithDays.push(days);
}
monthsWithDays.map(daysArray => daysArray.join(",")).join("\n")
Я позаимствовал функцию daysInMonth
у другой вопрос здесь