util.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. const ksort = obj => {
  2. let keys = Object.keys(obj).sort()
  3. , sortedObj = {};
  4. for (let i in keys) {
  5. sortedObj[keys[i]] = obj[keys[i]];
  6. }
  7. return sortedObj;
  8. }
  9. const checkNullObj = (obj) => {
  10. if (Object.keys(obj).length === 0) {
  11. return false
  12. }
  13. return true
  14. }
  15. const checkArrayNotNullNumber = (array,notNullNumber = 2) => {
  16. let num = 0
  17. for (const item in array) {
  18. if(array[item]) num++;
  19. }
  20. return num >= notNullNumber;
  21. }
  22. // 正切
  23. const tan = angle => {
  24. return Math.tan(angle * Math.PI / 180)
  25. }
  26. // 余切
  27. const cot = angle => {
  28. return 1 / tan(angle)
  29. }
  30. // 余弦
  31. const cos = angle => {
  32. return Math.cos(angle * Math.PI / 180)
  33. }
  34. // 余割
  35. const csc = angle => {
  36. return 1 / sin(angle)
  37. }
  38. // 正弦
  39. const sin = angle => {
  40. return Math.sin(angle * Math.PI / 180)
  41. }
  42. // 正割
  43. const sec = angle => {
  44. return 1 / cos(angle)
  45. }
  46. // 反正弦
  47. const asin = value => {
  48. return Math.asin(value) * 180 / Math.PI;
  49. }
  50. // 反余弦
  51. const acos = value => {
  52. return Math.acos(value) * 180 / Math.PI;
  53. }
  54. // 反正切
  55. const atan = value => {
  56. return Math.atan(value) * 180 / Math.PI;
  57. }
  58. const checkTriangle = (a,b,c) => {
  59. a = parseInt(a);
  60. b= parseInt(b);
  61. c = parseInt(c);
  62. return a + b > c && a + c > b && b + c > a;
  63. }
  64. const round = (number,percent) => {
  65. if(!number) return number
  66. let flag = number < 0 ? '-' : '';
  67. let arr = number.toString().split(".");
  68. if(arr.length > 1 && arr[1].length === 2) return number
  69. let i = Number('1'.padEnd(percent+1,'0'))
  70. number = Math.floor(Math.abs(Number(number)) * i) / i
  71. if(arr.length > 1 ){
  72. let str = arr[1]
  73. if(str.length > 2 && str[2] >= 5){
  74. number = Math.ceil(number * i)
  75. number += 1;
  76. number = number / i;
  77. }
  78. }
  79. if(number.toString().indexOf(".") === -1) number += ".0"
  80. arr = number.toString().split(".");
  81. arr[1] = arr[1].toString().padEnd(2,'0')
  82. number = arr.join(".")
  83. return flag+number;
  84. }
  85. export {
  86. ksort,
  87. checkNullObj,
  88. checkArrayNotNullNumber,
  89. tan,
  90. cot,
  91. cos,
  92. csc,
  93. sin,
  94. sec,
  95. asin,
  96. acos,
  97. atan,
  98. checkTriangle,
  99. round,
  100. }