fzip

Zip collections and map or iterate over the result at once

  • fzip

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
fzip
000.2.09 years ago9 years agoMinified + gzip package size for fzip in KB

Readme

npm
Zip collections and map or iterate over the result at once. Combination of zip and map, or zip and forEach.
Accepts functions and string specs (to build objects from). Falls back to plain zip.

Examples

> fzip([0, 1, 2], [2, 1, 0], function (a, b) {
    return a + b;
  })
[2, 2, 2]

> fzip([0, 1, 2], function (x) {
    return 2 - x;
  })
[2, 1, 0]

> fzip(['mom', 'dad', 'dog'], ['dear', 'awesome', 'joyful'], 'name, adjective')
[ { name: 'mom', adjective: 'dear' },
  { name: 'dad', adjective: 'awesome' },
  { name: 'dog', adjective: 'joyful' } ]

> fzip([0, 1, 2], [2, 1, 0])
[[0, 2], [1, 1], [2, 0]]

> fzip([0, 1, 2])
[[0], [1], [2]]


> sums = []
> fzip.each([0, 1, 2], [2, 1, 0], function (a, b) {
    sums.push(a + b);
  })
> sums
[2, 2, 2]

> sum = 0
> fzip.each([0, 1, 2], function (a) {
    sum += a;
  })
> sum
3

API

fzip(array..., func)

Apply func to arrays, passing one argument per array each time. Collect returned values in the resulting array.
Return null if no arrays given.

fzip(array..., spec)

Construct array of objects according to a string spec, which must comprise object keys, separated by comma and optional whitespace. The number of keys and the number of arrays should match.
Return null if no arrays given.

fzip(array...)

Zip arrays into a single array of corresponding items (see examples).
Return null if no arrays given.

fzip.each(array..., func)

Similar to fzip([array]..., func), but does not collect the results.

Install

npm install fzip

License

MIT