Todorov_Stanimir

10. Systems Register Objects and Classes-Exercises

Jul 7th, 2019
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function systemRegister(input) {
  2.     let output = {};
  3.     input.forEach(line => {
  4.         let [system, component, subComponent] = line.split(' | ');
  5.         if (!output.hasOwnProperty(system)) {
  6.             output[system] = {};
  7.             output[system][component] = [subComponent];
  8.         } else {
  9.             if (!output[system].hasOwnProperty(component)) {
  10.                 output[system][component] = [subComponent];
  11.             } else {
  12.                 output[system][component].push(subComponent);
  13.             }
  14.         }
  15.     });
  16.     let sortedOutput = Object.entries(output);
  17.     sortedOutput.forEach(element => element[1] = Object.entries(element[1]).sort((a, b) => b[1].length - a[1].length));
  18.  
  19.     sortedOutput.sort((a, b) => {
  20.         if (a[1].length > b[1].length || a[1].length < b[1].length) {
  21.             return b[1].length - a[1].length;
  22.         } else {
  23.             return a[0].localeCompare(b[0]);
  24.         }
  25.     });
  26.     sortedOutput.forEach(system => {
  27.         console.log(system[0]);
  28.         system[1].forEach(component => {
  29.             console.log(`|||${component[0]}`);
  30.             component[1].forEach(sybcomponent => console.log(`||||||${sybcomponent}`));
  31.         })
  32.     })
  33. }
Advertisement
Add Comment
Please, Sign In to add comment