Advertisement
am_dot_com

SW 2022-05-04

May 4th, 2022 (edited)
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. //generic_comparators.js
  2. //for "primitive" data types
  3. function howToSortNumbersAsc(x1, x2){
  4. x1 = Number(x1)
  5. x2 = Number(x2)
  6. if (x1>x2) return 1
  7. if (x1<x2) return -1
  8. return 0
  9. }//howToSortNumbersAsc
  10.  
  11. function howToSortNumbersDesc(x1, x2){
  12. return -1 * howToSortNumbersAsc(x1,x2)
  13. }//howToSortNumbersDesc
  14.  
  15. function howToSortStringsAsc(x1, x2){
  16. x1=x1+""
  17. x2=x2+""
  18. if (x1>x2) return 1
  19. if (x1<x2) return -1
  20. return 0
  21. }//howToSortStringsAsc
  22.  
  23. function howToSortStringsDesc(x1, x2){
  24. return -1 * howToSortStringsAsc(x1, x2)
  25. }//howToSortStringsDesc
  26.  
  27. *************
  28.  
  29. <!-- 3.html -->
  30. <!DOCTYPE html>
  31. <html lang="en">
  32. <head>
  33. <meta charset="UTF-8">
  34. <title>3 - Testing Car Collections</title>
  35. <script src="generic_comparators.js"></script>
  36. <script src="Car.js"></script>
  37. </head>
  38. <body>
  39. <script>
  40. var c1 = new Car(
  41. "Ferrari",
  42. "F1 641",
  43. ["Prost", "Mansell"],
  44. [new Date(1990, 12-1, 31), new Date(1990)]
  45. )
  46.  
  47. var c2 = new Car(
  48. "McLaren",
  49. "F1 MP4",
  50. ["Senna", "Berger"],
  51. [new Date(1991, 12-1, 31), new Date(1991)]
  52. )
  53.  
  54. var c3 = new Car(
  55. "Ferrari",
  56. "F1 2022",
  57. ["Leclerc", "Sainz"],
  58. [new Date(2022, 12-1, 31), new Date(2022)]
  59. )
  60.  
  61. var col = [c1, c2, c3]
  62. document.write(col)
  63. </script>
  64. </body>
  65. </html>
  66.  
  67. //Car.js
  68. class Car{
  69. constructor(
  70. pBrand="brand", //e.g. "VW"
  71. pModel="model", //e.g. "Golf"
  72. pOwners=[], // ["Maria", "John"]
  73. pInsurance=[] //["a1", "a2"]
  74. ){
  75. this.mBrand = pBrand
  76. this.mModel = pModel
  77. this.mOwners = pOwners
  78. this.mInsurance = pInsurance
  79. }//constructor
  80.  
  81. toString(){
  82. var strHtml = "<ul>"
  83. strHtml+=`<li><mark>brand:</mark>${this.mBrand}</li>`
  84. strHtml+=`<li><mark>model:</mark>${this.mModel}</li>`
  85. strHtml+=`<li><mark>owners:</mark>${this.mOwners}</li>`
  86. strHtml+=`<li><mark>insurance:</mark>${this.mInsurance}</li>`
  87. //strHtml+="<li>"+this.mInsurance+"</li>"
  88. strHtml+="</ul>"
  89. return strHtml
  90. }//toString
  91.  
  92. sortOwnersAsc(){
  93. this.mOwners.sort(howToSortStringsAsc)
  94. }//sortOwnersAsc
  95.  
  96. sortOwnersDesc(){
  97. this.mOwners.sort(howToSortStringsDesc)
  98. }//sortOwnersDesc
  99.  
  100. sortInsuranceAsc(){
  101. //this.mInsurance.sort(howToSortStringsAsc)
  102. this.mInsurance.sort(howToSortDatesAsc)
  103. }//sortInsuranceAsc
  104.  
  105. sortInsuranceDesc(){
  106. //this.mInsurance.sort(howToSortStringsDesc)
  107. this.mInsurance.sort(howToSortDatesDesc)
  108. }//sortInsuranceDesc
  109. }//Car
  110.  
  111. *********************
  112. <!-- 2.html -->
  113. <!DOCTYPE html>
  114. <html lang="en">
  115. <head>
  116. <meta charset="UTF-8">
  117. <title>Testing Car</title>
  118. <script src="generic_comparators.js"></script>
  119. <script src="Car.js"></script>
  120. </head>
  121. <body>
  122. <script>
  123. var c1 = new Car()
  124. document.write(c1)
  125.  
  126. document.write("<hr>")
  127.  
  128. var c2 = new Car(
  129. "Ferrari",
  130. "F1 641",
  131. ["Prost", "Mansell"],
  132. [new Date(1990, 12-1, 31), new Date(1990, 11-1), 30]
  133. )
  134. document.write(c2)
  135.  
  136. document.write("<br>After sorting owners, ascending:<br>")
  137. c2.sortOwnersAsc()
  138. document.write(c2)
  139.  
  140. document.write("<br>After sorting insurance dates, ascending:<br>")
  141. c2.sortInsuranceAsc()
  142. document.write(c2)
  143.  
  144. document.write("<br>After sorting owners, descending:<br>")
  145. c2.sortOwnersDesc()
  146. document.write(c2)
  147.  
  148. document.write("<br>After sorting insurance dates, descending:<br>")
  149. c2.sortInsuranceDesc()
  150. document.write(c2)
  151. </script>
  152. </body>
  153. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement