Hallo ebody,
Am Rande gefragt: warum ist loopObjArrData Methode einer Klasse? Sie verwendet keine Daten aus dem this-Objekt. Es wäre - je nach Aufgabe der Klasse - zu erwarten, dass entweder das durchlaufene Array oder das Filter-Array unter this
zu finden ist.
Wenn Du eine Methode oder Funktion hast, die irgendeine Form von Collection durchläuft, und Du ihr etwas mitgeben möchtest, das pro Durchlauf aktiviert wird, benötigst Du einen eigenen Callback, den Du dann selbst aufrufst. Das geht mit einer for..of Schleife so:
function loopy(collection, callback)
{
for (let entry of collection)
{
callback(entry);
}
}
let coll = [ "x", "y", "z" ];
loopy(coll, c => console.log(c));
=================== Callback als Pfeilfunktion
Du kannst eigene Callbacks auch aus einem anderen Callback heraus aufrufen. Funktionen sind Funktionen...
function gloopy(collection, callback)
{
collection.forEach(entry => callback(entry));
}
let coll = [ "x", "y", "z" ];
gloopy(coll, c => console.log(c));
=================== Callback als Pfeilfunktion
Und natürlich spricht auch nichts dagegen, wenn ein Callback einen Wert zurückgibt.
function summeWenn(collection, filterCallback) {
let summe = 0;
for (let entry of collection) {
if (filterCallback(entry))
summe += entry;
}
}
let werte = [ 1, 5, 9, 22, 12 ];
let kleinSum = summeWenn(werte, w => w < 10);
console.log(kleinSum); // 15, Summe aller Werte unter 10
Eine Pfeilfunktion wie w => w < 10
, die hinter dem Pfeil nur einen einzelnen JavaScript-Ausdruck hat und keine geschweiften Klammern, gibt den Wert dieses Ausdrucks zurück. Für diesen Fall also true, wenn w < 10 ist und sonst false.
Hat Dir das weitergeholfen?
Rolf
sumpsi - posui - obstruxi