UNPKG

@extra-array/flat

Version:

Flattens nested array to given depth.

23 lines (22 loc) 478 B
function id(v) { return v; } function is(v) { return Array.isArray(v); } function flatTo(x, n, fm, ft, a) { var i = -1; for (var v of x) { var v1 = fm(v, ++i, x); if (n !== 0 && ft(v1, i, x)) flatTo(v, n - 1, fm, ft, a); else a.push(v1); } return a; } function flat(x, n = -1, fm = null, ft = null) { var fm = fm || id, ft = ft || is; return flatTo(x, n, fm, ft, []); } export { flat as default };