desito07

Messages Manager

Aug 2nd, 2020 (edited)
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.     let num = Number(input.shift());
  3.     // console.log(num);
  4.     let messages = {};
  5.     // let messagesSent = {};
  6.     // let messagesReceived = {};
  7.    
  8.     for(let i = 0; i < input.length; i++){
  9.         let arr = input[i].split('=');
  10.         let command = arr[0];
  11.         let user = arr[1];
  12.         let arg2 = arr[2];
  13.         let arg3 = arr[3];            
  14.         // console.log(command);        
  15.         switch(command){
  16.             case "Add":                            
  17.                 if(!messages.hasOwnProperty(user)){
  18.                     messages[user] = {
  19.                        sent: Number(arg2),
  20.                        received: Number(arg3)
  21.                    }          
  22.            
  23.                 }
  24.                 break;
  25.             case "Message":
  26.                 let sender = arr[1];
  27.                 let receiver = arr[2];
  28.            
  29.                 if(messages.hasOwnProperty(sender) && messages.hasOwnProperty(receiver)){
  30.                     messages[sender].sent++;
  31.                     messages[receiver].received++;
  32.                                
  33.                     if(messages[sender].sent + messages[sender].received >= num){
  34.                         console.log(`${sender} reached the capacity!`);
  35.                         delete (messages[sender]);
  36.                     }
  37.                     if(messages[receiver].sent + messages[receiver].received >= num){
  38.                         console.log(`${receiver} reached the capacity!`);
  39.                         delete (messages[receiver]);
  40.                     }
  41.                 }              
  42.                
  43.                 break;
  44.             case "Empty":
  45.                 if(messages.hasOwnProperty(user)){
  46.                     delete messages[user];
  47.                 }
  48.                 if(user ==='All'){
  49.                     messages = {};
  50.                 } else {    
  51.                     delete messages[user]              
  52.                 }                            
  53.                 break;
  54.             case "Statistics":
  55.                 break;
  56.         }                
  57.     }
  58.     let sorted = Object.entries(messages).sort((a,b) => b[1].received - a[1].received || a[0].localeCompare(b[0]));
  59. console.log(`Users count: ${sorted.length}`);    
  60. for(let kvp of sorted){
  61.     console.log(`${kvp[0]} - ${kvp[1].received + kvp[1].sent}`);
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment