Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function generateComponentCatalogue(data) {
  2.     let catalogue = new Map;
  3.     for (let line of data) {
  4.         let [system, component, subComponent] = line.split(/\s\|\s/);
  5.         if (!catalogue.has(system)) {
  6.             catalogue.set(system, new Map);
  7.         }
  8.  
  9.         if (!catalogue.get(system).has(component)) {
  10.             catalogue.get(system).set(component, [])
  11.         }
  12.         catalogue.get(system).get(component).push(subComponent);
  13.     }
  14.     function sortSystemComparator(sysA, sysB, catalogue) {
  15.         let aComponents = catalogue.get(sysA).size;
  16.         let bComponents = catalogue.get(sysB).size;
  17.         if (aComponents > bComponents) return -1;
  18.         if (aComponents < bComponents) return 1;
  19.  
  20.         return sysA.toLowerCase().localeCompare(sysB.toLocaleLowerCase());
  21.     }
  22.  
  23.     let systems = [...catalogue.keys()].sort((a, b) => sortSystemComparator(a, b, catalogue));
  24.     for (let system of systems) {
  25.         console.log(system);
  26.         let components = [...catalogue.get(system).keys()].sort((s1, s2) => catalogue.get(system).get(s2).length - catalogue.get(system).get(s1).length);
  27.         for (let component of components) {
  28.             console.log(`|||${component}`);
  29.             for (let subComponent of catalogue.get(system).get(component)) {
  30.                 console.log(`||||||${subComponent}`);
  31.             }
  32.         }
  33.     }
  34. }
  35.  
  36. //generateComponentCatalogue(["SULS | Main Site | Home Page", "SULS | Main Site | Login Page", "SULS | Main Site | Register Page", "SULS | Judge Site | Login Page", "SULS | Judge Site | Submittion Page", "Lambda | CoreA | A23", "SULS | Digital Site | Login Page", "Lambda | CoreB | B24", "Lambda | CoreA | A24", "Lambda | CoreA | A25", "Lambda | CoreC | C4", "Indice | Session | Default Storage", "Indice | Session | Default Security"]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement