UNPKG

@extra-array/subsequences

Version:

Lists all possible subsequences.

20 lines (19 loc) 400 B
function* subsequences(x, n = -1) { var X = x.length; if (n >= X) { if (n === X) yield x; return; } if (n === 0 || X === 0) { yield []; return; } var y = x.slice(0, -1); yield* subsequences(y, n); for (var s of subsequences(y, n - 1)) { s.push(x[X - 1]); yield s; } } export { subsequences as default };