Функции высшего порядка - Javascript

Я работаю через Eloquent Javascript. Функцияподсчитывать принимает массив и тестовую функцию (равен (х)) в качестве аргументов и возвращает количество элементов в массиве, для которого тестовая функция вернула значение true.

Я понимаю, как эти функции работают, и что логическиВсего Аргумент для анонимной функции, переданный для приведения, имеет значение ноль.

Может ли кто-нибудь помочь мне увидеть, откуда конкретно берется ценность для общего количества? Я хочу иметь более ясную картину в моей голове.

function count(test, array) {
  return reduce(function(total, element) { // Where is the value for total coming from?
    return total + (test(element) ? 1 : 0);
  }, 0, array);
}

function equals(x) {
  return function(element) {return x === element;};
}

function countZeroes(array) {
  return count(equals(0), array);
}

Уменьшить функцию от ранее:

function reduce(combine, base, array) {
  forEach(array, function (element) {
    base = combine(base, element);
  });
  return base;
}

Функция forEach от ранее:

function forEach(array, action) {
  for (var i = 0; i < array.length; i++)
    action(array[i]);
}

Ответы на вопрос(2)

Ваш ответ на вопрос