Liliana797979

3 - message - final exam - fundamentals

Aug 17th, 2021
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function messages(input) {
  2.     let listOfUsers = {};
  3.     let totalMessagesCount = Number(input.shift());
  4.  
  5.     let line = input.shift();
  6.     while (line != "Statistics") {
  7.         let tokens = line.split('=');
  8.         let command = tokens[0];
  9.         if (command === 'Add') {
  10.             let userName = tokens[1];
  11.             let sent = Number(tokens[2]);
  12.             let received = Number(tokens[3]);
  13.             let total = sent + received;
  14.             if (listOfUsers[userName] == undefined) {
  15.                 listOfUsers[userName] = {
  16.                     sent: sent,
  17.                     received: received,
  18.                     total: total
  19.                 }
  20.             }
  21.         } else if (command === 'Message') {
  22.                 let sender = tokens[1];
  23.                 let receiver = tokens[2];
  24.                 if (listOfUsers[sender] != undefined && listOfUsers[receiver] != undefined) {
  25.                     listOfUsers[sender].sent += 1;
  26.                     listOfUsers[sender].total += 1;
  27.                     listOfUsers[receiver].received += 1;
  28.                     listOfUsers[receiver].total += 1;
  29.                     if (listOfUsers[sender].total >= totalMessagesCount) {
  30.                         console.log(`${sender} reached the capacity!`);
  31.                         delete listOfUsers[sender];
  32.                     }
  33.                     if (listOfUsers[receiver].total >= totalMessagesCount) {
  34.                         console.log(`${receiver} reached the capacity!`);
  35.                         delete listOfUsers[receiver];
  36.                     }
  37.                 }
  38.  
  39.         } else if (command === 'Empty') {
  40.                 let user = tokens[1];
  41.                 if (user != 'All') {
  42.                     delete listOfUsers[user];
  43.                 } else {
  44.                     for(let el in listOfUsers){
  45.                         delete listOfUsers[el];
  46.                     }
  47.  
  48.                 }
  49.             }
  50.             line = input.shift();    
  51.     }
  52.  
  53.  
  54.     let objAsArr = Object.entries(listOfUsers);
  55.     console.log(`Users count: ${objAsArr.length}`);
  56.     objAsArr.sort((a, b) => a[0].localeCompare(b[0]))
  57.     .sort((a, b) => b[1].received - a[1].received);
  58.  
  59.  
  60.     for (let el of objAsArr) {
  61.         console.log(`${el[0]} - ${el[1].total}`);
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment