You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.2 KiB

Reduce

Instructions

Create three functions:

  • fold that receives an array, a function and an accumulator, in this order, and applies the function in the elements of the array starting on the left.

  • foldRight that receives an array, a function and an accumulator, in this order, and applies the function in the elements of the array starting on the right.

  • reduce that works just like the method [].reduce when you don't specify an accumulator. The arguments should be an array and a function. The starting value of your accumulator must be the first value of the array. If your array is less than 1 argument you should throw an error.

  • reduceRight like reduce, from the last value to the first

Example:

const adder = (a,b) => a + b
fold([1,2,3], adder, 2) // returns 8 (2 + 1 + 2 + 3)
foldRight([1,2,3], adder, 2) // returns 8 (2 + 3 + 2 + 1)
reduce([1,2,3], adder) // returns 6 (1 + 2 + 3)

The use of [].reduce and [].reduceRight is forbidden for this exercise.

Notions

Code provided

Array.prototype.reduce = undefined
Array.prototype.reduceRight = undefined