Advertisement
Guest User

Followers

a guest
Aug 1st, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     let followers = {};
  3.     for (let i = 0; i < input.length; i++) {
  4.         let [command, username, count] = input[i].split(': ');
  5.         switch (command) {
  6.             case 'New follower':
  7.                 if (!followers.hasOwnProperty(username)) {
  8.                     followers[username] = {
  9.                         likes: 0,
  10.                         comments: 0,
  11.                     };
  12.                 }
  13.                 break;
  14.             case 'Like':
  15.                 if (!followers.hasOwnProperty(username)) {
  16.                     followers[username] = {
  17.                         likes: 0,
  18.                         comments: 0,
  19.                     };
  20.                 }
  21.                 followers[username].likes += +count;
  22.                 break;
  23.             case 'Comment':
  24.                 if (!followers.hasOwnProperty(username)) {
  25.                     followers[username] = {
  26.                         likes: 0,
  27.                         comments: 0,
  28.                     };
  29.                 }
  30.                 followers[username].comments++;
  31.                 break;
  32.             case 'Blocked':
  33.                 if (followers.hasOwnProperty(username)) {
  34.                     delete followers[username];
  35.                 } else {
  36.                     console.log(`${username} doesn't exist.`);
  37.                }
  38.                break;
  39.            case 'Log out':
  40.                break;
  41.        }
  42.    }
  43.    let sorted = Object.entries(followers).sort((a, b) => b[1].likes - a[1].likes || a[0].localeCompare(b[0]));
  44.    console.log(`${sorted.length} followers`);
  45.    for (let kvp of sorted) {
  46.        console.log(`${kvp[0]}: ${kvp[1].likes + kvp[1].comments}`);
  47.    }
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement