index.js 969 B

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @description 生成指定位随机数的函数
  3. * @param {number} length 随机数的位数
  4. * @returns {string} 随机36进制数
  5. */
  6. export function getRandomNumber(length = 8) {
  7. return Math.random()
  8. .toString(36)
  9. .substring(2, 2 + length);
  10. }
  11. /**
  12. * 下载文件
  13. * @param {string} url 文件地址
  14. * @param {string} downloadName 文件名称
  15. */
  16. export function downloadFile(url, downloadName) {
  17. const a = document.createElement('a');
  18. a.href = url;
  19. a.download = downloadName;
  20. a.click();
  21. a.remove();
  22. }
  23. /**
  24. * 柯里化函数(将接受多个参数的函数转换为一系列接受单个参数的函数)
  25. * @param {Function} fn 需要柯里化的函数
  26. * @returns Function
  27. */
  28. export let curry = (fn) => {
  29. if (typeof fn !== 'function') throw new Error('No function provided');
  30. return function curriedFn(...args) {
  31. if (args.length < fn.length) return (...args2) => curriedFn(...args, ...args2);
  32. return fn(...args);
  33. };
  34. };