Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function asd(data) {
- let map = data.reduce((a, b) => {
- let tokens = b.split(new RegExp("\\|"));
- let systemName = tokens[0].trim();
- let componentName = tokens[1].trim();
- let subComponentName = tokens[2].trim();
- if (!a.hasOwnProperty(systemName)) {
- a[systemName] = {};
- }
- if (!a[systemName].hasOwnProperty(componentName)) {
- a[systemName][componentName] = [];
- }
- a[systemName][componentName].push(subComponentName);
- return a;
- }, {});
- let toReturn = "";
- let keysSorted = Object.keys(map).sort((a, b) => {
- if (Object.getOwnPropertyNames(map[a]).length > Object.getOwnPropertyNames(map[b]).length) {
- return -1;
- } else if (Object.getOwnPropertyNames(map[a]).length === Object.getOwnPropertyNames(map[b]).length) {
- return a.localeCompare(b);
- } else {
- return 1;
- }
- });
- keysSorted.forEach(mapKey => {
- let innerKeysSorted = Object.keys(map[mapKey]).sort((a, b) => map[mapKey][b].length - map[mapKey][a].length);
- toReturn += mapKey + "\r\n";
- innerKeysSorted.forEach(innerMapKey => {
- toReturn += `|||${innerMapKey}\r\n`;
- map[mapKey][innerMapKey].forEach(el => toReturn += `||||||${el}\r\n`);
- });
- });
- return toReturn.trim();
- }
- const data = ['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']
- ;
- console.log(asd(data));
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement