helpers.js 784 B

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