Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function manipulateArray(inputArr) {
- let numArr = inputArr[0].split(' ').map(Number);
- let exchangedArr = numArr;
- for (i = 0; i < inputArr.length; i++) {
- // exchange {index} (1.0)
- if (inputArr[i].includes('exchange ')) {
- let exchangeIndexArr = inputArr[i].split(' ');
- let exchangeIndex = exchangeIndexArr[1];
- if (exchangeIndex < 0 || exchangeIndex > numArr.length - 1) {
- console.log('Invalid index');
- } else {
- exchangedArr = [];
- for (j = 0; j <= exchangeIndex; j++) {
- exchangedArr = numArr;
- exchangedArr.push(exchangedArr[0]);
- exchangedArr.shift();
- }
- continue;
- }
- }
- // find max odd (2.1)
- if (inputArr[i].includes('max odd')) {
- let maxOdd = -Infinity;
- let maxOddIndex = -1;
- for (o = 0; o < exchangedArr.length; o++) {
- if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] > maxOdd) {
- maxOdd = exchangedArr[o];
- maxOddIndex = o;
- } else if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] === maxOdd) {
- maxOddIndex = o;
- } else if (maxOddIndex < 0) {
- maxOddIndex = 'No matches';
- }
- }
- console.log(maxOddIndex);
- }
- // find max even (2.2)
- if (inputArr[i].includes('max even')) {
- let maxEven = -Infinity;
- let maxEvenIndex = -1;
- for (e = 0; e < exchangedArr.length; e++) {
- if (exchangedArr[e] % 2 === 0 && exchangedArr[e] > maxEven) {
- maxEven = exchangedArr[e];
- maxEvenIndex = e;
- } else if (exchangedArr[e] % 2 === 0 && exchangedArr[e] === maxEven) {
- maxEvenIndex = e;
- } else if (maxEvenIndex < 0) {
- maxEvenIndex = 'No matches';
- }
- }
- console.log(maxEvenIndex);
- }
- // find min odd (2.3)
- if (inputArr[i].includes('min odd')) {
- let minOdd = Infinity;
- let minOddIndex = -1;
- for (o = 0; o < exchangedArr.length; o++) {
- if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] < minOdd) {
- minOdd = exchangedArr[o];
- minOddIndex = o;
- } else if (exchangedArr[o] % 2 !== 0 && exchangedArr[o] === minOdd) {
- minOddIndex = o;
- } else if (minOddIndex < 0) {
- minOddIndex = 'No matches';
- }
- }
- console.log(minOddIndex);
- }
- // find min even (2.4)
- if (inputArr[i].includes('min even')) {
- let minEven = Infinity;
- let minEvenIndex = -1;
- for (e = 0; e < exchangedArr.length; e++) {
- if (exchangedArr[e] % 2 === 0 && exchangedArr[e] < minEven) {
- minEven = exchangedArr[e];
- minEvenIndex = e;
- } else if (exchangedArr[e] % 2 === 0 && exchangedArr[e] === minEven) {
- minEvenIndex = e;
- } else if (minEvenIndex < 0) {
- minEvenIndex = 'No matches';
- }
- }
- console.log(minEvenIndex);
- }
- //find first (n) odds (3.1)
- if (inputArr[i].includes('first')) {
- let firstOddsInput = inputArr[i].split(' ');
- if (firstOddsInput[2] === 'odd') {
- if (+firstOddsInput[1] === 0) {
- console.log('[]');
- continue;
- }
- if (+firstOddsInput[1] > exchangedArr.length || +firstOddsInput[1] < 0) {
- console.log('Invalid count');
- continue;
- }
- let firstOddsArr = [];
- for (o = 0; o < exchangedArr.length; o++) {
- if (exchangedArr[o] % 2 !== 0) {
- firstOddsArr.push(exchangedArr[o]);
- if (firstOddsArr.length === +firstOddsInput[1]) {
- console.log(`[${firstOddsArr.join(', ')}]`);
- break;
- } else if (firstOddsArr === []) {
- console.log(`[${firstOddsArr.join(', ')}]`);
- }
- }
- }
- if (firstOddsArr.length !== +firstOddsInput[1]) {
- console.log(`[${firstOddsArr.join(', ')}]`);
- }
- }
- }
- //find first (n) evens (3.2)
- if (inputArr[i].includes('first')) {
- let firstEvenInput = inputArr[i].split(' ');
- if (firstEvenInput[2] === 'even') {
- if (+firstEvenInput[1] === 0) {
- console.log('[]');
- continue;
- }
- if (+firstEvenInput[1] > exchangedArr.length || +firstEvenInput[1] < 0) {
- console.log('Invalid count');
- continue;
- }
- let firstEvenArr = [];
- for (e = 0; e < exchangedArr.length; e++) {
- if (exchangedArr[e] % 2 === 0) {
- firstEvenArr.push(exchangedArr[e]);
- if (firstEvenArr.length === +firstEvenInput[1]) {
- console.log(`[${firstEvenArr.join(', ')}]`);
- break;
- } else if (firstEvenArr === []) {
- console.log(`[${firstEvenArr.join(', ')}]`);
- }
- }
- }
- if (firstEvenArr.length !== +firstEvenInput[1]) {
- console.log(`[${firstEvenArr.join(', ')}]`);
- }
- }
- }
- //find last (n) odds (3.3)
- if (inputArr[i].includes('last')) {
- let lastOddsInput = inputArr[i].split(' ');
- if (lastOddsInput[2] === 'odd') {
- if (+lastOddsInput[1] === 0) {
- console.log('[]');
- continue;
- }
- if (+lastOddsInput[1] > exchangedArr.length || +lastOddsInput[1] < 0) {
- console.log('Invalid count');
- continue;
- }
- let lastOddsArr = [];
- for (o = exchangedArr.length - 1; o >= 0; o--) {
- if (exchangedArr[o] % 2 !== 0) {
- lastOddsArr.push(exchangedArr[o]);
- if (lastOddsArr.length === +lastOddsInput[1]) {
- console.log(`[${lastOddsArr.reverse().join(', ')}]`);
- break;
- } else if (lastOddsArr === []) {
- console.log(`[${lastOddsArr.reverse().join(', ')}]`);
- }
- }
- }
- if (lastOddsArr.length !== +lastOddsInput[1]) {
- console.log(`[${lastOddsArr.reverse().join(', ')}]`);
- }
- }
- }
- //find last (n) evens (3.4)
- if (inputArr[i].includes('last')) {
- let lastEvensInput = inputArr[i].split(' ');
- if (lastEvensInput[2] === 'even') {
- if (+lastEvensInput[1] === 0) {
- console.log('[]');
- continue;
- }
- if (+lastEvensInput[1] > exchangedArr.length || +lastEvensInput[1] < 0) {
- console.log('Invalid count');
- continue;
- }
- let lastEvensArr = [];
- for (e = exchangedArr.length - 1; e >= 0; e--) {
- if (exchangedArr[e] % 2 === 0) {
- lastEvensArr.push(exchangedArr[e]);
- if (lastEvensArr.length === +lastEvensInput[1]) {
- console.log(`[${lastEvensArr.reverse().join(', ')}]`);
- break;
- } else if (lastEvensArr === []) {
- console.log(`[${lastEvensArr.reverse().join(', ')}]`);
- }
- }
- }
- if (lastEvensArr.length !== +lastEvensInput[1]) {
- console.log(`[${lastEvensArr.reverse().join(', ')}]`);
- }
- }
- }
- }
- console.log(`[${exchangedArr.join(', ')}]`);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement