Advertisement
braveheart1989

Mailbox

Nov 13th, 2016
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class MailBox {
  2.     constructor() {
  3.         this.mailbox = [];
  4.     }
  5.     addMessage(subject,text) {
  6.         this.mailbox.push(subject,text);
  7.         return this;
  8.  
  9.     }
  10.     get messageCount() {
  11.         return this.mailbox.length/2;
  12.     }
  13.     deleteAllMessages() {
  14.         return this.mailbox = [];
  15.     }
  16.     findBySubject(substr) {
  17.         let arr = [];
  18.         for (let i = 0; i < this.mailbox.length; i+=2) {
  19.             if (this.mailbox[i].indexOf(substr) !== -1) {
  20.                 arr.push({subject:this.mailbox[i],text:this.mailbox[i+1]});
  21.             }
  22.         }
  23.         if(arr.length==0) {
  24.             return [];
  25.         }
  26.         return arr
  27.     }
  28.     toString() {
  29.         if(this.mailbox.length==0) {
  30.             return ` * (empty mailbox)`
  31.         }
  32.         let result ='';
  33.         for (let i = 0; i < this.mailbox.length; i+=2) {
  34.             result+=` * [${this.mailbox[i]}] ${this.mailbox[i+1]}\n`
  35.  
  36.         }
  37.  
  38.         return result
  39.  
  40.     }
  41. }
  42.  
  43. let mb = new MailBox();
  44. console.log("Msg count: " + mb.messageCount);
  45. console.log('Messages:\n' + mb);
  46. mb.addMessage("meeting", "Let's meet at 17/11");
  47. mb.addMessage("beer", "Wanna drink beer tomorrow?");
  48. mb.addMessage("question", "How to solve this problem?");
  49. mb.addMessage("Sofia next week", "I am in Sofia next week.");
  50. console.log("Msg count: " + mb.messageCount);
  51. console.log('Messages:\n' + mb);
  52. console.log("Messages holding 'rakiya': " +
  53.     JSON.stringify(mb.findBySubject('rakiya')));
  54. console.log("Messages holding 'ee': " +
  55.     JSON.stringify(mb.findBySubject('ee')));
  56.  
  57. mb.deleteAllMessages();
  58. console.log("Msg count: " + mb.messageCount);
  59. console.log('Messages:\n' + mb);
  60.  
  61. console.log("New mailbox:\n" +
  62.     new MailBox()
  63.         .addMessage("Subj 1", "Msg 1")
  64.         .addMessage("Subj 2", "Msg 2")
  65.         .addMessage("Subj 3", "Msg 3")
  66.         .toString());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement