Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Contacto.js
- function Contact(
- pName,
- pColTelNum,
- pColEmail
- ){
- pName = (pName===undefined)?"Anonymous":pName
- pColTelNum = (pColTelNum===undefined)? [] : pColTelNum
- pColEmail = (pColEmail===undefined)? [] : pColEmail
- this.mName = pName
- this.mColTelNum = pColTelNum
- this.mColEmail = pColEmail
- }//Contact
- Contact.prototype.toString = function(){
- var strUl = "<ul>", ulTels="", ulEmails=""
- strUl+=`<li><mark>${this.mName}</mark></li>`
- strUl+="<li>"
- strUl+="<details open><summary>Telephone Numbers</summary>"
- for (var address=0, ulTels="<ul>";
- address<this.mColTelNum.length;
- address+=1
- ){
- ulTels+="<li>"+this.mColTelNum[address]+"</li>"
- }//for
- ulTels+="</ul>"
- strUl+=ulTels+"</details>"
- strUl+="</li>"
- //now, the emails
- strUl+="<li>"
- strUl+="<details open><summary>Emails</summary>"
- ulEmails="<ul>"
- for (var email of this.mColEmail){
- ulEmails+=`<li>${email}</li>`
- }//for
- ulEmails+="</ul>"
- strUl+=ulEmails
- strUl+="</details></li>"
- strUl+="</ul>"
- return strUl
- }//toString
- function howToCompareByNameAscending(c1, c2){
- if (c1.mName>c2.mName) return 1
- if (c1.mName<c2.mName) return -1
- return 0
- }//howToCompareByNameAscending
- function howToCompareByNameDescending(c1, c2){
- return -1*howToCompareByNameAscending(c1,c2)
- if (c1.mName>c2.mName) return -1
- if (c1.mName<c2.mName) return 1
- return 0
- }//howToCompareByNameDescending
- function howToCompareNumbersAsc(n1, n2){
- //return n2-n1
- if (Number(n1)>Number(n2)) return 1
- if (Number(n2)<Number(n1)) return -1
- return 0
- }//howToCompareNumbersAsc
- function howToCompareStringsAsc(n1, n2){
- //return n2-n1
- if (n1+"">n2+"") return 1
- if (n2+""<n1+"") return -1
- return 0
- }//howToCompareStringsAsc
- function howToCompareContactsByTelNumAsc(c1, c2){
- c1.mColTelNum.sort(howToCompareNumbersAsc)
- c2.mColTelNum.sort(howToCompareNumbersAsc)
- if (c1>c2) return 1
- if (c1<c2) return -1
- return 0
- }//howToCompareContactsByTelNumAsc
- ******
- <!-- 3.HTML -->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Testing the "Contact" data type</title>
- <script src="Contacto.js"></script>
- </head>
- <body>
- <script>
- var c1 = new Contact(
- "Rita",
- [911234567, 921234567],
- )
- //document.write(c1)
- var c2 = new Contact(
- "John Ritman", //Head Over Heels, Match day
- [967654321, 927654321],
- )
- //document.write(c2)
- var favorites = [c1, c2]
- document.write("<h2>Before sort:</h2>")
- document.write(favorites)
- favorites.sort(howToCompareByNameDescending)
- document.write("<h2>After descending sort:</h2>")
- document.write(favorites)
- favorites.sort(howToCompareByNameAscending)
- document.write("<h2>After ascending sort:</h2>")
- document.write(favorites)
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment