w3resource

JavaScript: Combine the numbers of a given array into an array containing all combinations

JavaScript fundamental (ES6 Syntax): Exercise-9 with Solution

All Combinations from Array of Numbers

Write a JavaScript program to combine the numbers of a given array into an array containing all combinations.

  • Use Array.prototype.reduce() combined with Array.prototype.map() to iterate over elements and combine into an array containing all combinations.

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
// Define a function called `powerset` that takes an array `arr`.
const powerset = arr => 
  // Reduce the array to generate the powerset.
  arr.reduce(
    // For each element in the array, concatenate it with each element of the accumulated result.
    (a, v) => a.concat(a.map(r => [v].concat(r))), 
    [[]]
  );

// Test cases
console.log(powerset([1, 2]));  
console.log(powerset([1, 2, 3]));  
console.log(powerset([1, 2, 3, 4]));

Output:

[[],[1],[2],[2,1]]
[[],[1],[2],[2,1],[3],[3,1],[3,2],[3,2,1]]
[[],[1],[2],[2,1],[3],[3,1],[3,2],[3,2,1],[4],[4,1],[4,2],[4,2,1],[4,3],[4,3,1],[4,3,2],[4,3,2,1]]

Visual Presentation:

JavaScript Fundamental: Combine the numbers of a given array into an array containing all combinations

Flowchart:

flowchart: Combine the numbers of a given array into an array containing all combinations

Live Demo:

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


For more Practice: Solve these Related Problems:

  • Write a JavaScript program that generates all possible pair combinations from an array of numbers.
  • Write a JavaScript function that returns every possible subset combination of numbers from a given array.
  • Write a JavaScript program that creates an array of all possible combinations (of any length) from an input array of numbers.

Go to:


PREV : Filter Specified Values from Array.
NEXT : Extract Values by Indexes from Array.

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.