index.js 1.3 KB

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