Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (arr) {
- let arr2 = [];
- let obj = {};
- let objArr = [];
- let objArr2 = [];
- let newArr = 1;
- let arr3 = [];
- let arr4 = [];
- for (let el of arr) {
- arr2.push(el.split(' | '));
- }
- arr2.sort((a, b) => a[0].localeCompare(b[0]));
- // console.log(arr2);
- for (let el of arr2) {
- for (let i = 0; i < el.length; i++) {
- let name = el[0];
- if (el[0] === objArr[0] || newArr === 1) {
- if (i === el.length - 1) {
- newArr = 0;
- }
- if (i === 0 && newArr === 1) {
- objArr.push(name);
- } else {
- if (el[i] !== name) {
- objArr.push(el[i]);
- }
- }
- } else {
- objArr2.push(objArr);
- objArr = [];
- newArr++;
- i = -1;
- }
- }
- if (el === arr2[arr2.length - 1]) {
- objArr2.push(objArr);
- }
- }
- for (let i = 0; i < objArr2.length; i++) {
- for (let j = 0; j < objArr2[i].length; j = j + 2) {
- let comp = objArr2[i][j - 1];
- let subComp = objArr2[i][j];
- if (j === 0) {
- obj.system = objArr2[i][j];
- } else {
- if (obj.hasOwnProperty(comp)) {
- obj[comp].push(subComp);
- } else {
- obj[comp] = [subComp];
- }
- }
- }
- arr3.push(obj);
- obj = {};
- }
- // console.log(objArr2);
- for (let i = 0; i < arr3.length; i++) {
- arr4.push(Object.entries(arr3[i]).sort((a, b) => b[1].length - a[1].length));
- }
- arr4.sort((a, b) => b.length === a.length ? a[0][0][1].localeCompare(b[0][0][1]) : b.length - a.length);
- for (let i = 0; i < arr4.length; i++) {
- console.log(arr4[i][0][1]);
- arr4[i].shift();
- for (let j = 0; j < arr4[i].length; j++) {
- console.log(`|||${arr4[i][j][0]}`);
- for (let k = 0; k < arr4[i][j][1].length; k++) {
- console.log(`||||||${arr4[i][j][1][k]}`);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement