Advertisement
dimoBs

Array Manipulator

Feb 26th, 2021
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //08. Array Manipulator
  2. function manipolator(sequence, operations) {
  3.  
  4.     let newArr = sequence.slice();
  5.     let outPrint = 0;
  6.     let contains = 0;
  7.     let flag = false;
  8.  
  9.     for (let i = 0; i < operations.length; i++) {
  10.  
  11.         let splited = operations[i].split(' ')
  12.         let command = [];
  13.  
  14.         for (let ind = 0; ind < splited.length; ind++) {
  15.             command.push(splited[ind]);
  16.         }
  17.         switch (command[0]) {
  18.             case "add":
  19.                 newArr.splice(command[1], 0, Number(command[2]));
  20.                 break;
  21.             case "addMany":
  22.                 let newPosion = Number(command[1]);
  23.                 for (let many = 1; many < command.length - 1; many++) {
  24.                     newArr.splice(newPosion, 0, Number(command[many + 1]));
  25.                     newPosion++;
  26.                 }
  27.                 break;
  28.             case "contains":
  29.                 flag = true;
  30.                 console.log(newArr.indexOf(Number(command[1])));
  31.                 break;
  32.             case "remove":
  33.                 newArr.splice(command[1], 1)
  34.  
  35.                 break;
  36.             case "shift":
  37.                 let tempo = newArr.slice(0, command[1]);
  38.                 for (let a of tempo) {
  39.                     newArr.push(a);
  40.                     newArr.shift();
  41.                 }
  42.                 break;
  43.             case "sumPairs":
  44.                 sumPairs()
  45.                 break;
  46.             case "print":
  47.                 break;
  48.         }
  49.     }
  50.     function fn(x) {
  51.         newArr.push(newArr[many + 1])
  52.     }
  53.  
  54.     function sumPairs() {
  55.         newArr = newArr.map((e, i, newArr) => i < newArr.length - 1 ? (newArr[i] += newArr[i + 1]) : newArr[i] = newArr[i]).filter((e, i) => i % 2 === 0);
  56.     }
  57.  
  58.     console.log('[ ' + newArr.join(', ') + ' ]');
  59.     //console.log(newArr.map(Number));
  60.  
  61. }
  62. //manipolator([1, 2, 4, 5, 6, 7], ['add 1 8', 'contains 1', 'contains 3', 'print']);
  63. // manipolator([2, 2, 4, 2, 4], ["add 1 4", "sumPairs", "print"])
  64. //manipolator([1, 2, 3, 4, 5], ["addMany 5 9 8 7 6 5", "contains 15", "remove 3", "shift 1", "print"])
  65. manipolator([2, 2, 4, 2, 4],["add 1 4", "sumPairs", "print"]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement