Advertisement
mimi_em

6. System Components

Jun 12th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function components(arr) {
  2.   let map=new Map();
  3.   for (let line of arr){
  4.     let [system,component,subcomponent] = line.split(' | ').filter(e=>e!='');
  5.  
  6.     if(!map.has(system)){
  7.       map.set(system,new Map());
  8.     }
  9.  
  10.     if (!map.get(system).has(component)){
  11.       map.get(system).set(component,new Array());
  12.     }
  13.  
  14.     let subcomponents=map.get(system).get(component);
  15.     subcomponents.push(subcomponent);
  16.     map.get(system).set(component,subcomponents);
  17.   }
  18.  
  19.   [...map].sort(sortSystems).forEach(([system,components])=>{
  20.     console.log(system);
  21.     [...components].sort((a,b) => a.length - b.length).forEach(([component,subcomponents])=> {
  22.       console.log(`|||${component}`)
  23.       subcomponents.forEach(sc => console.log(`||||||${sc}`))
  24.     })
  25.   });
  26.  
  27.   function sortSystems(a,b){
  28.     if ([...a[1]].length > [...b[1]].length){
  29.       return -1;
  30.     } else if ([...a[1]].length < [...b[1]].length){
  31.       return 1;
  32.     } else {
  33.       if (a[0] < b[0]){
  34.         return -1;
  35.       }else if(a[0] > b[0]){
  36.         return 1;
  37.       }else {
  38.         return 0;
  39.       }
  40.     }
  41.   }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement