index.js 1.1 KB

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