Arbeiten an Eloquent Javascript Kapitel über hohe Auftragsfunktionen, kam ich accross diesem Beispiel:geschweiften Klammern um for-Schleife verändert Ausgabe
function reduce(array, combine, start) {
var current = start;
for (var i = 0; i < array.length; i++)
current = combine(current, array[i]);
return current;
}
console.log(reduce([1, 2, 3, 4], function(a, b) {
return a + b;
}, 0));
// → 10
die, wenn sie die for
Schleife neu geschrieben sind, was ich dachte waren optional, geschweifte Klammern, wie:
function reduce(array, combine, start) {
var current = start;
for (var i = 0; i < array.length; i++) {
current = combine(current, array[i]);
return current;
}
}
console.log(reduce([1, 2, 3, 4], function(a, b) {
return a + b;
}, 0));
// → 1
das Ergebnis nur 1 statt der erwarteten 10 ist, was die Klammern hier tun werden, um die Ausgabe zu ändern?
Die geschweiften Klammern setzen den 'return current;' run ** in ** den Schleifenkörper, sodass Sie die Funktion bei der ersten Iteration beenden. Ohne die Klammern ist der 'Rückstrom;' ** nach ** dem Schleifenkörper. –