Liliana797979

sistems register1 - fundamentals

Jul 3rd, 2021
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve2(params) {
  2.     let systems = new Map();
  3.     for (const row of params) {
  4.         let [name, component, subComponent] = row.split(' | ');
  5.         if (!systems.get(name)) {
  6.             systems.set(name, new Map());
  7.         }
  8.         let setOfSybcomponents = systems.get(name).get(component);
  9.         if (!setOfSybcomponents) {
  10.             systems.get(name).set(component, []);
  11.             setOfSybcomponents = systems.get(name).get(component);
  12.         }
  13.         setOfSybcomponents.push(subComponent);
  14.     }
  15.     let ident = '|||';
  16.     let sortSystems = (a, b) => (b[1].size - a[1].size !== 0) ? b[1].size - a[1].size // By components count -> x[1].size
  17.         : a[0] < b[0] ? -1 // By Name -> x[0]
  18.             : a[0] > b[0] ? 1
  19.                 : 0;
  20.     let result = [...systems]
  21.         .sort((a, b) => sortSystems(a, b))
  22.         .map(sys => sys[0]
  23.             + '\n' + [...sys[1]]
  24.                 .sort((a, b) => b[1].length - a[1].length) // By subcomponents count -> x[1].length
  25.                 .map(c => ident + c[0] + '\n' + ident + ident + c[1].join('\n' + ident + ident))
  26.                 .join('\n')
  27.         )
  28.         .join('\n');
  29.     console.log(result.trim());
  30. }
Advertisement
Add Comment
Please, Sign In to add comment