Advertisement
Spocoman

08. Array Manipulator

Feb 9th, 2022 (edited)
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function arrayManipulator(numbers, commands) {
  2.     while (commands.length !== 0) {
  3.         let command = commands.shift().split(' ');
  4.         if (command[0] === 'add') {
  5.             numbers.splice(Number(command[1]), 0, Number(command[2]));
  6.         } else if (command[0] === 'addMany') {
  7.             let input = command.slice(1).map(Number);
  8.             let index = input.shift();
  9.             for (let i = index; i < input.length + index; i++) {
  10.                 numbers.splice(i, 0, input[i - index]);
  11.             }
  12.         } else if (command[0] === 'contains') {
  13.             console.log(numbers.indexOf(Number(command[1])));
  14.         } else if (command[0] === 'remove') {
  15.             numbers.splice(Number(command[1]), 1);
  16.         } else if (command[0] === 'shift') {
  17.             for (let i = 0; i < Number(command[1]); i++) {
  18.                 numbers.push(numbers.shift());
  19.             }
  20.         } else if (command[0] === 'sumPairs') {
  21.             let x = Math.floor(numbers.length / 2);
  22.             for (let i = 0; i < x; i++) {
  23.                 numbers[i] += numbers[i + 1];
  24.                 numbers.splice(i + 1, 1);
  25.             }
  26.         } else if (command[0] === 'print') {
  27.             console.log(`[ ${numbers.join(', ')} ]`);
  28.         }
  29.     }
  30. }
  31.  
  32. РЕШЕНИЕ СЪС SWITCH:
  33.  
  34. function arrayManipulator(numbers, commands) {
  35.     while(commands.length !== 0){
  36.         let command = commands.shift().split(' ');
  37.         switch (command[0]){
  38.             case 'add':
  39.                 numbers.splice(Number(command[1]), 0, Number(command[2]));
  40.                 break;
  41.  
  42.             case 'addMany':
  43.                 let input = command.slice(1).map(Number);
  44.                 let index = input.shift();
  45.                 for (let i = index; i < input.length + index; i++) {
  46.                     numbers.splice(i, 0, input[i - index]);
  47.                 }
  48.                 break;
  49.  
  50.             case 'contains':
  51.                 console.log(numbers.indexOf(Number(command[1])));
  52.                 break;
  53.  
  54.             case 'remove':
  55.                 numbers.splice(Number(command[1]), 1);
  56.                 break;
  57.  
  58.             case 'shift':
  59.                 for (let i = 0; i < Number(command[1]); i++){
  60.                     numbers.push(numbers.shift());
  61.                 }
  62.                 break;
  63.  
  64.             case 'sumPairs':
  65.                 let x = Math.floor(numbers.length / 2);
  66.                 for (let i = 0; i < x ; i++){
  67.                     numbers[i] += numbers[i + 1];
  68.                     numbers.splice(i + 1, 1);
  69.                 }
  70.                 break;
  71.  
  72.             case 'print':
  73.                 console.log(`[ ${numbers.join(', ')} ]`);
  74.                 break;
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement