Сейчас много работаю с TypeScript и потому иногда пишу методы, которые могу не сразу вспомнить, если потом переключусь, к примеру, на NetCore проект. Потому для потенциального освежения памяти в будущем запишу пару полезных примеров использования reduce - поиск максимума и подсчет количества в массиве объектов.
Поиск максимума в массиве объектов
const maxDay = (newSchedule.length === 0) ? new Date() : newSchedule.reduce((max, cur) => { return max.theday > cur.theday ? max : cur; }, newSchedule[0]).theday;
Подсчет количества ответов в массиве объектов
const votesTotal = userAnswers.reduce((qnt, cur) => { // eslint-disable-next-line no-return-assign return qnt += cur.answers.filter(xf => xf.theday === sc.theday && (xf.startTime === sc.startTime) && (xf.userAnswer === 1 || (yesnoifneedbe && xf.userAnswer === 2)) ).length }, 0)