Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function laLouvre(array) {
  2.     let paintingsArray = array.shift()
  3.         .split(' ')
  4.         .map(Number);
  5.  
  6.     let currentManipulations = array.shift().split(' ')
  7.  
  8.     while (currentManipulations[0] !== 'END') {
  9.         const firstNumber = +currentManipulations[1];
  10.         const secondNumber = +currentManipulations[2];
  11.  
  12.         if (currentManipulations[0] === 'Change') {
  13.             if (paintingsArray.indexOf(firstNumber !== -1)) {
  14.                 paintingsArray[paintingsArray.indexOf(firstNumber)] = secondNumber;
  15.             }
  16.         } else if (currentManipulations[0] === 'Hide') {
  17.             if ((paintingsArray.indexOf(firstNumber) >= 0)) {
  18.                 paintingsArray.splice(paintingsArray.indexOf(firstNumber), 1)
  19.             }
  20.         } else if (currentManipulations[0] === 'Switch') {
  21.             if ((paintingsArray.indexOf(firstNumber) >= 0) && (paintingsArray.indexOf(secondNumber) >= 0)) {
  22.  
  23.                 const savedFirst = firstNumber;
  24.                 const fIndex = paintingsArray.indexOf(firstNumber);
  25.                 const sIndex = paintingsArray.indexOf(secondNumber);
  26.                 paintingsArray[fIndex] = +secondNumber;
  27.                 paintingsArray[sIndex] = +savedFirst;
  28.             }
  29.         } else if (currentManipulations[0] === 'Insert') {
  30.             if ((paintingsArray.length + 1) >= firstNumber) {
  31.                 paintingsArray.splice((firstNumber + 1), 0, secondNumber);
  32.             }
  33.         } else if (currentManipulations[0] === 'Reverse') {
  34.             paintingsArray.reverse();
  35.         }
  36.         currentManipulations = array.shift().split(' ');
  37.     }
  38.     console.log(paintingsArray.join(' '));
  39. }
  40. laLouvre(['77 120 115 101 101 97 78 88 112 111 108 101 111 110',
  41.     'Insert 5 32',
  42.     'Switch 97 78',
  43.     'Hide 88',
  44.     'Change 120 117',
  45.     'END']
  46. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement