array.reduce()
array.reduce () führt eine Callback-Funktion auf allen Werten des Arrays durch und gibt nur einen Wert zurück. reduce ändert des Original-Arrays nicht.
array.reduce (callback, [initialValue]);
callback ist die obligatorische Callback-Funktion, in der die Operation durchgeführt wird. Das optionale Argument initialValue ist der Anfangswert.
const numbers = [400, 12, 333];
const sum = numbers.reduce (function summarize(sum, number) {
const updatedSum = sum + number;
return updatedSum;
}, 0);
sum;
console.log ("sum", sum);
JSON: Komplexe Funktionen mit array.map, array.filter und array.reduce
So richtig in Fahrt kommen die Array-Methoden reduce, filter, find und map, wenn JSON-Arrays bearbeitet werden. Das Beispiel filtert alle Produkte vom Typ "Buch" und berechnet den Gesamtwert der Bücher im Stock.
const products = [ {"art": "Buch", "no": 1724, "price": "3.75", "stock": 27}, {"art": "Kalender", "no": 475, "price": "13.99", "stock": 13}, {"art": "Buch", "no": 188, "price": "14.05", "stock": 28}, {"art": "Spiel", "no": 774, "price": "22.99", "stock": 4}, {"art": "Papier", "no": 2713, "price": "4.95", "stock": 120}, {"art": "Spiel", "no": 75, "price": "2.50", "stock": 32} ]; const stock = products.filter ( function(obj){ if (obj.art == "Buch") { return obj; }; // get all the marks. }).map (function (obj) { return obj.price; }); console.log ("stock", stock); // ["3.75", "14.05"] const buchwert = stock.reduce (function summarize (sum, num) { const updatedSum = parseFloat(sum) + parseFloat(num); return updatedSum; }) console.log (buchwert); // 17.8