Вы начинаете с let dateRangeCount = 0
, и вы хотите, чтобы итерации условно увеличивали эту переменную, так что пусть это будет ваш аккумулятор. Внутри обратного вызова добавьте к аккумулятору, если выполняются условия:
const extractInRange = function(range, payload) {
const start = new Date(range.startDate);
const end = new Date(range.endDate);
return payload.reduce((dateRangeCount, item) => {
const date = new Date(item.createDate);
return dateRangeCount + (date >= start && date <= end);
}, 0);
}
Здесь dateRangeCount
будет числом, а (date >= start && date <= end)
будет логическим значением, поэтому, если условие выполняется на итерация вернет dateRangeCount + 1
, иначе вернет dateRangeCount
. Возвращаемое значение будет новым аккумулятором (dateRangeCount
) для следующей итерации.