UNPKG

@extra-array/merge

Version:

Merges values from sorted iterables.

54 lines (44 loc) 1.61 kB
Merges values from sorted iterables. [:running:] [:vhs:] [:package:] [:moon:] [:ledger:] > Similar: [sort], [merge].<br> > This is part of package [extra-array]. [extra-array]: https://www.npmjs.com/package/extra-array ```javascript array.merge(xs, [fc], [fm]); // xs: iterables // fc: compare function (a, b) // fm: map function (v, i, x) ``` ```javascript const array = require('extra-array'); var x = [1, 3, 5, 7]; var y = [2, 4, 8]; array.merge([x, y]); // [ // 1, 2, 3, 4, // 5, 7, 8 // ] var y = [-2, -4, -8]; array.merge([x, y], (a, b) => Math.abs(a) - Math.abs(b)); // [ // 1, -2, 3, -4, // 5, 7, -8 // ] array.merge([x, y], null, v => Math.abs(v)); // [ // 1, -2, 3, -4, // 5, 7, -8 // ] ``` ### references - [Data.Lists.mergeBy: Haskell](https://hackage.haskell.org/package/lists-0.4.2/docs/Data-Lists.html#v:mergeBy) - [Data.List.Utils.mergeBy: Haskell](https://hackage.haskell.org/package/MissingH-1.4.2.1/docs/Data-List-Utils.html#v:mergeBy) - [itertools.merge: Rust](https://docs.rs/itertools/0.9.0/itertools/fn.merge.html) - [merge-sorted: @mvayngrib](https://www.npmjs.com/package/merge-sorted) - [merge-k-sorted-arrays: @jedwards1211](https://www.npmjs.com/package/merge-k-sorted-arrays) [:running:]: https://npm.runkit.com/@extra-array/merge [:package:]: https://www.npmjs.com/package/@extra-array/merge [:moon:]: https://www.npmjs.com/package/@extra-array/merge.min [:ledger:]: https://unpkg.com/@extra-array/merge/ [sort]: https://github.com/nodef/extra-array/wiki/sort [merge]: https://github.com/nodef/extra-array/wiki/merge [:vhs:]: https://asciinema.org/a/332097