UNPKG

@extra-array/flat-map

Version:

Flattens nested array, based on map function.

25 lines (24 loc) 475 B
function id(v) { return v; } function is(v) { return Array.isArray(v); } function concat$(x, ...ys) { for (var y of ys) x.push(...y); return x; } function flatMap(x, fm = null, ft = null) { var fm = fm || id, ft = ft || is; var a = [], i = -1; for (var v of x) { var v1 = fm(v, ++i, x); if (ft(v1, i, x)) concat$(a, v1); else a.push(v1); } return a; } export { flatMap as default };