subsets - nodef/extra-map GitHub Wiki

List all possible subsets.

Similar: randomSubset, subsets, isSubset.

function subsets(x, n)
// x: a map
// n: number of entries [-1 ⇒ any]
const map = require('extra-map');

var x = new Map(['a', 1], ['b', 2](/nodef/extra-map/wiki/'a',-1],-['b',-2));
[...map.subsets(x)];
// → [
// →   Map(0) {},
// →   Map(1) { 'a' => 1 },
// →   Map(1) { 'b' => 2 },
// →   Map(2) { 'a' => 1, 'b' => 2 }
// → ]

var x = new Map(['a', 1], ['b', 2], ['c', 3](/nodef/extra-map/wiki/'a',-1],-['b',-2],-['c',-3));
[...map.subsets(x)];
// → [
// →   Map(0) {},
// →   Map(1) { 'a' => 1 },
// →   Map(1) { 'b' => 2 },
// →   Map(2) { 'a' => 1, 'b' => 2 },
// →   Map(1) { 'c' => 3 },
// →   Map(2) { 'a' => 1, 'c' => 3 },
// →   Map(2) { 'b' => 2, 'c' => 3 },
// →   Map(3) { 'a' => 1, 'b' => 2, 'c' => 3 }
// → ]

References