helpers.js 673 B

1234567891011121314151617181920212223
  1. function chunk (array, size = 1) {
  2. return Array.range(Math.ceil(array.length / size)).map(i => array.slice(i * size, i * size + size));
  3. }
  4. function range (start, stop = undefined, step = 1) {
  5. if (!stop) { stop = start; start = 0; }
  6. return start < stop ? Array(Math.ceil((stop - start) / step)).fill().map((_, i) => start + i * step) : [];
  7. }
  8. function unique (array, op = x => x) {
  9. return array.filter((obj, i) => array.findIndex(entry => op(obj) === op(entry)) === i);
  10. }
  11. function zip (...args) {
  12. return Array(Math.max(...args.map(arg => arg.length))).fill(null).map((_, i) => args.map(arg => arg[i]));
  13. }
  14. module.exports = {
  15. chunk,
  16. range,
  17. unique,
  18. zip,
  19. };