Funktionen höherer Ordnung - Javascript

Ich arbeite mit Eloquent Javascript. Die FunktionAnzahl nimmt ein Array und eine Testfunktion (gleich (x)) als Argumente und gibt die Anzahl der Elemente im Array zurück, für die die Testfunktion true zurückgegeben hat.

Ich verstehe die allgemeine Funktionsweise dieser Funktionen und die logischegesamt Das Argument für die anonyme Funktion, die zum Reduzieren übergeben wird, hat den Wert Null.

Kann mir jemand helfen, herauszufinden, woher der Gesamtwert speziell kommt? Ich möchte ein klareres Bild in meinem Kopf haben.

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);
}

Funktion von früher reduzieren:

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

für jede Funktion von früher:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage