zip - nodef/extra-entries GitHub Wiki

Combine matching entries from all entries.

function zip(xs, fm, ft, vd?)
// xs: all entries
// fm: map function (vs, k)
// ft: end function (dones) [some]
// vd: default value
const entries = require('extra-entries');
const array = require("extra-array");

var x = ["a", 1], ["b", 2], ["c", 3](/nodef/extra-entries/wiki/"a",-1],-["b",-2],-["c",-3);
var y = ["a", 10], ["b", 20](/nodef/extra-entries/wiki/"a",-10],-["b",-20);
[...entries.zip([x, y])];
// → [ [ "a", [ 1, 10 ] ], [ "b", [ 2, 20 ] ] ] (shortest)

[...entries.zip([x, y], ([a, b]) => a + b)];
// → [ [ "a", 11 ], [ "b", 22 ] ]

[...entries.zip([x, y], null, array.some)];
// → [ [ "a", [ 1, 10 ] ], [ "b", [ 2, 20 ] ] ] (shortest)

[...entries.zip([x, y], null, array.every, 0)];
// → [ [ "a", [ 1, 10 ] ], [ "b", [ 2, 20 ] ], [ "c", [ 3, 0 ] ] ] (longest)

References