Я написал скрипт, который проходит через весь массив и выводит на консоль независимо от того, перед каждой датой предшествует 12 или нет.
Обратите внимание, что я изменил несколько значений в массиве, чтобы получить диапазон дат, некоторые до 12, некоторые после 12 и один в 12 точно.
dates = [
{id: 1, date: new Date(2020, 1, 4, 13, 0)},
{id: 2, date: new Date(2020, 30, 4, 9, 0)},
{id: 3, date: new Date(2020, 1, 5, 12, 0)},
{id: 4, date: new Date(2020, 2, 3, 22, 0)},
{id: 5, date: new Date(2020, 5, 5, 9, 0)},
]
for (var i = 0; i < dates.length; i++) {
if (dates[i].date.getHours() < 12) {
console.log('Before 12.');
} else {
console.log('Not before 12.');
}
}