Advertisement
ErolKZ

Untitled

Nov 2nd, 2021
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. function solve (arr) {
  2.  
  3. let arr2 = [];
  4.  
  5. let obj = {};
  6.  
  7. let objArr = [];
  8.  
  9. let objArr2 = [];
  10.  
  11. let newArr = 1;
  12.  
  13. let arr3 = [];
  14.  
  15.  
  16. for (let el of arr) {
  17.  
  18. arr2.push(el.split(' | '));
  19.  
  20. }
  21.  
  22.  
  23. arr2.sort((a, b) => a[0].localeCompare(b[0]));
  24.  
  25. // console.log(arr2);
  26.  
  27.  
  28. for (let el of arr2) {
  29.  
  30.  
  31. for (let i = 0; i < el.length; i++) {
  32.  
  33. let name = el[0];
  34.  
  35. if (el[0] === objArr[0] || newArr === 1) {
  36.  
  37. if (i === el.length - 1) {
  38.  
  39. newArr = 0;
  40.  
  41. }
  42.  
  43. if (i === 0 && newArr === 1) {
  44.  
  45. objArr.push(name);
  46.  
  47. } else {
  48.  
  49. if (el[i] !== name) {
  50.  
  51. objArr.push(el[i]);
  52.  
  53. }
  54.  
  55. }
  56.  
  57. } else {
  58.  
  59. objArr2.push(objArr);
  60.  
  61. objArr = [];
  62.  
  63. newArr++;
  64.  
  65. i = -1;
  66.  
  67.  
  68. }
  69.  
  70. }
  71.  
  72. if (el === arr2[arr2.length - 1]) {
  73.  
  74. objArr2.push(objArr);
  75.  
  76. }
  77.  
  78.  
  79. }
  80.  
  81.  
  82. // console.log(objArr2);
  83.  
  84.  
  85. for (let i = 0; i < objArr2.length; i++) {
  86.  
  87. for (let j = 0; j < objArr2[i].length; j = j + 2) {
  88.  
  89. let comp = objArr2[i][j - 1];
  90.  
  91. let subComp = objArr2[i][j];
  92.  
  93. if (j === 0) {
  94.  
  95. obj.system = objArr2[i][j];
  96.  
  97. } else {
  98.  
  99. if (obj.hasOwnProperty(comp)) {
  100.  
  101. obj[comp].push(subComp);
  102.  
  103.  
  104. } else {
  105.  
  106. obj[comp] = [subComp];
  107.  
  108. }
  109.  
  110. }
  111.  
  112. }
  113.  
  114. arr3.push(obj);
  115.  
  116. obj = {};
  117.  
  118. }
  119.  
  120.  
  121. // console.log(objArr2);
  122.  
  123. arr3.sort((a, b) => Object.keys(b).length === Object.keys(a).length ? a['system'].localeCompare(b['system']) : Object.keys(b).length - Object.keys(a).length);
  124.  
  125.  
  126. for (let i = 0; i < arr3.length; i++) {
  127.  
  128. for (let key in arr3[i]) {
  129.  
  130. let systemKey = arr3[i][key];
  131.  
  132. if (key === 'system') {
  133.  
  134. console.log(`${systemKey}`);
  135.  
  136.  
  137. }
  138.  
  139. if (key !== 'system') {
  140.  
  141. console.log(`|||${key}`);
  142.  
  143. for (let j = 0; j < arr3[i][key].length; j++) {
  144.  
  145. console.log(`||||||${arr3[i][key][j]}`);
  146.  
  147. }
  148.  
  149. }
  150.  
  151. }
  152.  
  153. }
  154.  
  155.  
  156. }
  157.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement