Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function systemComponents(input) {
- const systems = new Map();
- const sortSystems = (s1, s2) => {
- if (systems.get(s1).size != systems.get(s2).size) {
- return systems.get(s2).size - systems.get(s1).size;
- }
- return s1.toLowerCase().localeCompare(s2.toLowerCase());
- };
- const sortComponents = (system, c1, c2) => systems.get(system).get(c2).length - systems.get(system).get(c1).length;
- input.forEach((line) => {
- const tokens = line.split(/\s*\|\s*/);
- const [system, component, subcomponent] = tokens;
- if (!systems.get(system)) {
- systems.set(system, new Map());
- }
- if (!systems.get(system).get(component)) {
- systems.get(system).set(component, []);
- }
- systems.get(system).get(component).push(subcomponent);
- });
- const systemsSorted = Array.from(systems.keys()).sort((s1, s2) => sortSystems(s1, s2));
- systemsSorted.forEach((system) => {
- console.log(system);
- const componentsSorted = Array.from(systems.get(system).keys()).sort((c1, c2) => sortComponents(system, c1, c2));
- componentsSorted.forEach((component) => {
- console.log(`|||${component}`);
- systems.get(system).get(component).forEach((sc) => console.log(`||||||${sc}`));
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement