var reduce = function ( data, soFar, aggregator ) { if ( data.length == 0 ) { return soFar; } var first = data.shift(); soFar = aggregator( soFar, first ); return reduce( data, soFar, aggregator ); }; alert( reduce( [ 1, 2, 3, 4, 5 ], 0, function ( x, y ) { return x + y; } ) ); Αρχική τιμή Τιμές που θα «συνενωθούν» Παράμετρος-συνάρτηση που κάνει την «συνένωση» «συνένωση» δύο στοιχείων
{}