helpers.js 715 B

1234567891011121314151617181920212223242526272829303132
  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) {
  6. stop = start;
  7. start = 0;
  8. }
  9. return start < stop
  10. ? Array(Math.ceil((stop - start) / step))
  11. .fill()
  12. .map((_, i) => start + i * step)
  13. : [];
  14. }
  15. function unique(array, op = x => x) {
  16. return array.filter((obj, i) => array.findIndex(entry => op(obj) === op(entry)) === i);
  17. }
  18. function zip(...args) {
  19. return Array(Math.max(...args.map(arg => arg.length)))
  20. .fill(null)
  21. .map((_, i) => args.map(arg => arg[i]));
  22. }
  23. module.exports = {
  24. chunk,
  25. range,
  26. unique,
  27. zip,
  28. };