Advertisement
PPetkov2000

Programming Fundamentals - On the Way to Annapurna

Dec 24th, 2019
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(params) {
  2.   params.pop();
  3.   let stores = {};
  4.  
  5.   for (let param of params) {
  6.     let tokens = param.split("->");
  7.     let command = tokens[0];
  8.  
  9.     if (command === "Add" && !tokens[2].includes(",")) {
  10.       let store = tokens[1];
  11.       let item = tokens[2];
  12.       if (!stores.hasOwnProperty(store)) {
  13.         stores[store] = {
  14.           items: []
  15.         };
  16.       }
  17.       stores[store].items.push(item);
  18.     } else if (command === "Add" && tokens[2].includes(",")) {
  19.       let store = tokens[1];
  20.       let items = tokens[2].split(",");
  21.       if (!stores.hasOwnProperty(store)) {
  22.         stores[store] = {
  23.           items: []
  24.         };
  25.       }
  26.       items.forEach(item => {
  27.         stores[store].items.push(item);
  28.       });
  29.     } else if (command === "Remove") {
  30.       let store = tokens[1];
  31.       if (stores.hasOwnProperty(store)) {
  32.         delete stores[store];
  33.       }
  34.     }
  35.   }
  36.  
  37.   console.log("Stores list:");
  38.   Object.entries(stores)
  39.     .sort((a, b) => {
  40.       let result = b[1].items.length - a[1].items.length;
  41.       if (result === 0) {
  42.         result === b[0].localeCompare(a[0]);
  43.       }
  44.       return result;
  45.     })
  46.     .forEach(store => {
  47.       console.log(store[0]);
  48.       store[1].items.forEach(item => console.log(`<<${item}>>`));
  49.     });
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement