Advertisement
AlexanderHristov

11. *Array Manipulator Technologies Fundamentals JavaScript

Oct 24th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function manipulateArray(inputArr) {
  2.  
  3.     let numArr = inputArr[0].split(' ').map(Number);
  4.     let exchangedArr = numArr;
  5.  
  6.     for (i = 0; i < inputArr.length; i++) {
  7.  
  8.         // exchange {index}  (1.0)
  9.         if (inputArr[i].includes('exchange ')) {
  10.             let exchangeIndexArr = inputArr[i].split(' ');
  11.             let exchangeIndex = exchangeIndexArr[1];
  12.             if (exchangeIndex < 0 || exchangeIndex > numArr.length - 1) {
  13.                 console.log('Invalid index');
  14.             } else {
  15.                 exchangedArr = [];
  16.                 for (j = 0; j <= exchangeIndex; j++) {
  17.                     exchangedArr = numArr;
  18.                     exchangedArr.push(exchangedArr[0]);
  19.                     exchangedArr.shift();
  20.                 }
  21.                 continue;
  22.             }
  23.         }
  24.  
  25.         // find max odd (2.1)
  26.         if (inputArr[i].includes('max odd')) {
  27.             let maxOdd = -Infinity;
  28.             let maxOddIndex = -1;
  29.             for (o = 0; o < exchangedArr.length; o++) {
  30.                 if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] > maxOdd) {
  31.                     maxOdd = exchangedArr[o];
  32.                     maxOddIndex = o;
  33.                 } else if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] === maxOdd) {
  34.                     maxOddIndex = o;
  35.                 } else if (maxOddIndex < 0) {
  36.                     maxOddIndex = 'No matches';
  37.                 }
  38.             }
  39.             console.log(maxOddIndex);
  40.         }
  41.         // find max even (2.2)
  42.         if (inputArr[i].includes('max even')) {
  43.             let maxEven = -Infinity;
  44.             let maxEvenIndex = -1;
  45.             for (e = 0; e < exchangedArr.length; e++) {
  46.                 if (exchangedArr[e] % 2 === 0 && exchangedArr[e] > maxEven) {
  47.                     maxEven = exchangedArr[e];
  48.                     maxEvenIndex = e;
  49.                 } else if (exchangedArr[e] % 2 === 0 && exchangedArr[e] === maxEven) {
  50.                     maxEvenIndex = e;
  51.                 } else if (maxEvenIndex < 0) {
  52.                     maxEvenIndex = 'No matches';
  53.                 }
  54.             }
  55.             console.log(maxEvenIndex);
  56.         }
  57.  
  58.         // find min odd (2.3)
  59.         if (inputArr[i].includes('min odd')) {
  60.             let minOdd = Infinity;
  61.             let minOddIndex = -1;
  62.  
  63.             for (o = 0; o < exchangedArr.length; o++) {
  64.                 if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] < minOdd) {
  65.                     minOdd = exchangedArr[o];
  66.                     minOddIndex = o;
  67.                 } else if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] === minOdd) {
  68.                     minOddIndex = o;
  69.                 } else if (minOddIndex < 0) {
  70.                     minOddIndex = 'No matches';
  71.                 }
  72.             }
  73.             console.log(minOddIndex);
  74.         }
  75.  
  76.         // find min even (2.4)
  77.         if (inputArr[i].includes('min even')) {
  78.             let minEven = Infinity;
  79.             let minEvenIndex = -1;
  80.             for (e = 0; e < exchangedArr.length; e++) {
  81.                 if (exchangedArr[e] % 2 === 0 && exchangedArr[e] < minEven) {
  82.                     minEven = exchangedArr[e];
  83.                     minEvenIndex = e;
  84.                 } else if (exchangedArr[e] % 2 === 0 && exchangedArr[e] === minEven) {
  85.                     minEvenIndex = e;
  86.                 } else if (minEvenIndex < 0) {
  87.                     minEvenIndex = 'No matches';
  88.                 }
  89.             }
  90.             console.log(minEvenIndex);
  91.         }
  92.  
  93.         //find first (n) odds (3.1)
  94.         if (inputArr[i].includes('first')) {
  95.             let firstOddsInput = inputArr[i].split(' ');
  96.             if (firstOddsInput[2] === 'odd') {
  97.  
  98.                 if (+firstOddsInput[1] === 0) {
  99.                     console.log('[]');
  100.                     continue;
  101.                 }
  102.  
  103.                 if (+firstOddsInput[1] > exchangedArr.length || +firstOddsInput[1] < 0) {
  104.                     console.log('Invalid count');
  105.                     continue;
  106.                 }
  107.                 let firstOddsArr = [];
  108.                 for (o = 0; o < exchangedArr.length; o++) {
  109.                     if (exchangedArr[o] % 2 !== 0) {
  110.                         firstOddsArr.push(exchangedArr[o]);
  111.                         if (firstOddsArr.length === +firstOddsInput[1]) {
  112.                             console.log(`[${firstOddsArr.join(', ')}]`);
  113.                             break;
  114.                         } else if (firstOddsArr === []) {
  115.                             console.log(`[${firstOddsArr.join(', ')}]`);
  116.                         }
  117.                     }
  118.                 }
  119.  
  120.                 if (firstOddsArr.length !== +firstOddsInput[1]) {
  121.                     console.log(`[${firstOddsArr.join(', ')}]`);
  122.                 }
  123.             }
  124.         }
  125.  
  126.         //find first (n) evens (3.2)
  127.         if (inputArr[i].includes('first')) {
  128.             let firstEvenInput = inputArr[i].split(' ');
  129.             if (firstEvenInput[2] === 'even') {
  130.  
  131.                 if (+firstEvenInput[1] === 0) {
  132.                     console.log('[]');
  133.                     continue;
  134.                 }
  135.  
  136.                 if (+firstEvenInput[1] > exchangedArr.length || +firstEvenInput[1] < 0) {
  137.                     console.log('Invalid count');
  138.                     continue;
  139.                 }
  140.  
  141.                 let firstEvenArr = [];
  142.  
  143.                 for (e = 0; e < exchangedArr.length; e++) {
  144.                     if (exchangedArr[e] % 2 === 0) {
  145.                         firstEvenArr.push(exchangedArr[e]);
  146.                         if (firstEvenArr.length === +firstEvenInput[1]) {
  147.                             console.log(`[${firstEvenArr.join(', ')}]`);
  148.                             break;
  149.                         } else if (firstEvenArr === []) {
  150.                             console.log(`[${firstEvenArr.join(', ')}]`);
  151.                         }
  152.                     }
  153.                 }
  154.  
  155.                 if (firstEvenArr.length !== +firstEvenInput[1]) {
  156.  
  157.                     console.log(`[${firstEvenArr.join(', ')}]`);
  158.                 }
  159.             }
  160.         }
  161.  
  162.         //find last (n) odds (3.3)
  163.         if (inputArr[i].includes('last')) {
  164.             let lastOddsInput = inputArr[i].split(' ');
  165.             if (lastOddsInput[2] === 'odd') {
  166.  
  167.                 if (+lastOddsInput[1] === 0) {
  168.                     console.log('[]');
  169.                     continue;
  170.                 }
  171.  
  172.                 if (+lastOddsInput[1] > exchangedArr.length || +lastOddsInput[1] < 0) {
  173.                     console.log('Invalid count');
  174.                     continue;
  175.                 }
  176.  
  177.                 let lastOddsArr = [];
  178.                 for (o = exchangedArr.length - 1; o >= 0; o--) {
  179.                     if (exchangedArr[o] % 2 !== 0) {
  180.                         lastOddsArr.push(exchangedArr[o]);
  181.                         if (lastOddsArr.length === +lastOddsInput[1]) {
  182.                             console.log(`[${lastOddsArr.reverse().join(', ')}]`);
  183.                             break;
  184.                         } else if (lastOddsArr === []) {
  185.                             console.log(`[${lastOddsArr.reverse().join(', ')}]`);
  186.                         }
  187.                     }
  188.                 }
  189.  
  190.                 if (lastOddsArr.length !== +lastOddsInput[1]) {
  191.                     console.log(`[${lastOddsArr.reverse().join(', ')}]`);
  192.                 }
  193.             }
  194.         }
  195.        
  196.         //find last (n) evens (3.4)
  197.         if (inputArr[i].includes('last')) {
  198.             let lastEvensInput = inputArr[i].split(' ');
  199.             if (lastEvensInput[2] === 'even') {
  200.  
  201.                 if (+lastEvensInput[1] === 0) {
  202.                     console.log('[]');
  203.                     continue;
  204.                 }
  205.  
  206.                 if (+lastEvensInput[1] > exchangedArr.length || +lastEvensInput[1] < 0) {
  207.                     console.log('Invalid count');
  208.                     continue;
  209.                 }
  210.  
  211.                 let lastEvensArr = [];
  212.                 for (e = exchangedArr.length - 1; e >= 0; e--) {
  213.                     if (exchangedArr[e] % 2 === 0) {
  214.                         lastEvensArr.push(exchangedArr[e]);
  215.                         if (lastEvensArr.length === +lastEvensInput[1]) {
  216.                             console.log(`[${lastEvensArr.reverse().join(', ')}]`);
  217.                             break;
  218.                         } else if (lastEvensArr === []) {
  219.                             console.log(`[${lastEvensArr.reverse().join(', ')}]`);
  220.                         }
  221.                     }
  222.                 }
  223.  
  224.                 if (lastEvensArr.length !== +lastEvensInput[1]) {
  225.                     console.log(`[${lastEvensArr.reverse().join(', ')}]`);
  226.                 }
  227.             }
  228.         }
  229.     }
  230.  
  231.     console.log(`[${exchangedArr.join(', ')}]`);
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement