am_dot_com

SW 2022-04-29

Apr 29th, 2022 (edited)
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. //Contacto.js
  2. function Contact(
  3. pName,
  4. pColTelNum,
  5. pColEmail
  6. ){
  7. pName = (pName===undefined)?"Anonymous":pName
  8. pColTelNum = (pColTelNum===undefined)? [] : pColTelNum
  9. pColEmail = (pColEmail===undefined)? [] : pColEmail
  10. this.mName = pName
  11. this.mColTelNum = pColTelNum
  12. this.mColEmail = pColEmail
  13. }//Contact
  14.  
  15. Contact.prototype.toString = function(){
  16. var strUl = "<ul>", ulTels="", ulEmails=""
  17.  
  18. strUl+=`<li><mark>${this.mName}</mark></li>`
  19. strUl+="<li>"
  20. strUl+="<details open><summary>Telephone Numbers</summary>"
  21.  
  22. for (var address=0, ulTels="<ul>";
  23. address<this.mColTelNum.length;
  24. address+=1
  25. ){
  26. ulTels+="<li>"+this.mColTelNum[address]+"</li>"
  27. }//for
  28. ulTels+="</ul>"
  29. strUl+=ulTels+"</details>"
  30. strUl+="</li>"
  31.  
  32. //now, the emails
  33. strUl+="<li>"
  34. strUl+="<details open><summary>Emails</summary>"
  35. ulEmails="<ul>"
  36. for (var email of this.mColEmail){
  37. ulEmails+=`<li>${email}</li>`
  38. }//for
  39. ulEmails+="</ul>"
  40.  
  41. strUl+=ulEmails
  42. strUl+="</details></li>"
  43.  
  44. strUl+="</ul>"
  45. return strUl
  46. }//toString
  47.  
  48. function howToCompareByNameAscending(c1, c2){
  49. if (c1.mName>c2.mName) return 1
  50. if (c1.mName<c2.mName) return -1
  51. return 0
  52. }//howToCompareByNameAscending
  53.  
  54. function howToCompareByNameDescending(c1, c2){
  55. return -1*howToCompareByNameAscending(c1,c2)
  56. if (c1.mName>c2.mName) return -1
  57. if (c1.mName<c2.mName) return 1
  58. return 0
  59. }//howToCompareByNameDescending
  60.  
  61. function howToCompareNumbersAsc(n1, n2){
  62. //return n2-n1
  63. if (Number(n1)>Number(n2)) return 1
  64. if (Number(n2)<Number(n1)) return -1
  65. return 0
  66. }//howToCompareNumbersAsc
  67.  
  68. function howToCompareStringsAsc(n1, n2){
  69. //return n2-n1
  70. if (n1+"">n2+"") return 1
  71. if (n2+""<n1+"") return -1
  72. return 0
  73. }//howToCompareStringsAsc
  74.  
  75. function howToCompareContactsByTelNumAsc(c1, c2){
  76. c1.mColTelNum.sort(howToCompareNumbersAsc)
  77. c2.mColTelNum.sort(howToCompareNumbersAsc)
  78. if (c1>c2) return 1
  79. if (c1<c2) return -1
  80. return 0
  81. }//howToCompareContactsByTelNumAsc
  82.  
  83. ******
  84.  
  85. <!-- 3.HTML -->
  86. <!DOCTYPE html>
  87. <html lang="en">
  88. <head>
  89. <meta charset="UTF-8">
  90. <title>Testing the "Contact" data type</title>
  91. <script src="Contacto.js"></script>
  92. </head>
  93. <body>
  94. <script>
  95. var c1 = new Contact(
  96. "Rita",
  97. [911234567, 921234567],
  98. )
  99. //document.write(c1)
  100.  
  101. var c2 = new Contact(
  102. "John Ritman", //Head Over Heels, Match day
  103. [967654321, 927654321],
  104.  
  105. )
  106. //document.write(c2)
  107.  
  108. var favorites = [c1, c2]
  109. document.write("<h2>Before sort:</h2>")
  110. document.write(favorites)
  111.  
  112. favorites.sort(howToCompareByNameDescending)
  113.  
  114. document.write("<h2>After descending sort:</h2>")
  115. document.write(favorites)
  116.  
  117. favorites.sort(howToCompareByNameAscending)
  118.  
  119. document.write("<h2>After ascending sort:</h2>")
  120. document.write(favorites)
  121. </script>
  122. </body>
  123. </html>
Add Comment
Please, Sign In to add comment