utils.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. export const platform_iOS: string = 'iOS';
  2. export const platform_Android: string = 'Android';
  3. export const platform_Harmony: string = 'Harmony';
  4. /**
  5. * 对比版本号,如需要,请自行修改判断规则
  6. * 支持比对 ("3.0.0.0.0.1.0.1", "3.0.0.0.0.1") ("3.0.0.1", "3.0") ("3.1.1", "3.1.1.1") 之类的
  7. * @param {Object} v1
  8. * @param {Object} v2
  9. * v1 > v2 return 1
  10. * v1 < v2 return -1
  11. * v1 == v2 return 0
  12. */
  13. export function compare(v_1: string = '0', v_2: string = '0') {
  14. const v1: string[] = String(v_1).split('.');
  15. const v2: string[] = String(v_2).split('.');
  16. const minVersionLens = Math.min(v1.length, v2.length);
  17. let result = 0;
  18. for (let i = 0; i < minVersionLens; i++) {
  19. const curV1 = Number(v1[i]);
  20. const curV2 = Number(v2[i]);
  21. if (curV1 > curV2) {
  22. result = 1;
  23. break;
  24. } else if (curV1 < curV2) {
  25. result = -1;
  26. break;
  27. }
  28. }
  29. if (result === 0 && v1.length !== v2.length) {
  30. const v1BiggerThenv2 = v1.length > v2.length;
  31. const maxLensVersion = v1BiggerThenv2 ? v1 : v2;
  32. for (let i = minVersionLens; i < maxLensVersion.length; i++) {
  33. const curVersion = Number(maxLensVersion[i]);
  34. if (curVersion > 0) {
  35. v1BiggerThenv2 ? (result = 1) : (result = -1);
  36. break;
  37. }
  38. }
  39. }
  40. return result;
  41. }