w3resource

JavaScript: Apply a function against an accumulator and each element in the array (from left to right), returning an array of successively reduced values

JavaScript: Exercise-156 with Solution

Array Successive Reduce Values

Write a JavaScript program to apply a function against an accumulator and each element in the array (from left to right), returning an array of successively reduced values.

  • Use Array.prototype.reduce() to apply the given function to the given array, storing each new result.

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
// Define a function 'reduceSuccessive' that applies a binary function to the elements of an array
// Successively reduce the array using the provided binary function and an initial accumulator value
const reduceSuccessive = (arr, fn, acc) =>
  // Use the 'reduce' method on the array
  arr.reduce(
    // For each element of the array, push the result of applying the binary function to the accumulator and the current value
    // into the result array
    (res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res),
    // Initialize the result array with the provided accumulator value
    [acc]
  );

// Test the 'reduceSuccessive' function with an array, a binary function, and an initial accumulator value
console.log(reduceSuccessive([1, 2, 3, 4, 5, 6], (acc, val) => acc + val, 0)); // Output: [0, 1, 3, 6, 10, 15, 21]

Output:

[0,1,3,6,10,15,21]

Flowchart:

flowchart: Apply a function against an accumulator and each element in the array (from left to right), returning an array of successively reduced values

Live Demo:

See the Pen javascript-basic-exercise-156-1 by w3resource (@w3resource) on CodePen.


For more Practice: Solve these Related Problems:

  • Write a JavaScript program that applies a reducer function to an array and returns an array of all intermediate accumulator values.
  • Write a JavaScript function that mimics the behavior of scan (cumulative reduce) and outputs each step’s result.
  • Write a JavaScript program that, given an array and a binary function, produces an array of partial sums using reduce.
  • Write a JavaScript program that creates a successive reduction array for a list of numbers with a custom combining function.

Go to:


PREV : Filter Where Predicate is False.
NEXT : Redirect to URL.

Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.