flat - nodef/extra-iterable GitHub Wiki

Flatten nested iterable to given depth.

Alternatives: flat, flatMap.

function flat(x, n, fm, ft)
// x:  a nested iterable
// n:  maximum depth (-1 ⇒ all)
// fm: map function (v, i, x)
// ft: flatten test (v, i, x) [isList]
const xiterable = require('extra-iterable');

var x = [1, 2], [3, [4, [5](/nodef/extra-iterable/wiki/1,-2],-[3,-[4,-[5)]];
[...xiterable.flat(x)];
// → [1, 2, 3, 4, 5]

[...xiterable.flat(x, 1)];
// → [1, 2, 3, [4, [5]]]

[...xiterable.flat(x, 2)];
// → [1, 2, 3, 4, [5]]

References