flatMap - nodef/extra-iterable GitHub Wiki

Flatten nested iterable, based on map function.

Alternatives: flat, flatMap.

function flatMap(x, fm, ft)
// x:  a nested iterable
// 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.flatMap(x)];
// → [1, 2, 3, [4, [5]]]

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

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

References