UNPKG

@extra-array/merge

Version:

Merges values from sorted iterables.

27 lines 722 B
import min from './min'; /** * Merges values from sorted iterables. * @param xs iterables * @param fc compare function (a, b) * @param fm map function (v, i, x) */ function merge(xs, fc = null, fm = null) { var X = xs.length, a = []; if (X === 0) return a; var is = new Array(X).fill(0); var xs = xs.filter(x => x.length > 0); while (xs.length > 0) { for (var i = 0, I = xs.length, vs = []; i < I; i++) vs[i] = xs[i][is[i]]; var i = min(vs, fc, fm)[0]; a.push(vs[i]); if (++is[i] < xs[i].length) continue; xs.splice(i, 1); is.splice(i, 1); } return a; } export default merge; //# sourceMappingURL=index.js.map