Advertisement
Guest User

arrayManupulator

a guest
May 13th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. function arrayManipulator(params, array) {
  2. let i = 0;
  3. let [command, index, element] = array[i].split(' ');
  4. index = Number(index);
  5. element = Number(element);
  6. while (command !== 'print') {
  7. switch (command) {
  8. case 'add':
  9. params.splice(index, 0, element);
  10. break;
  11. case 'addMany':
  12. let addmany = array[i].split(' ');
  13. for (let j = 2; j < addmany.length; j++) {
  14. element = Number(addmany[j]);
  15. params.splice(index, 0, element);
  16. index++
  17. }
  18. break;
  19. case 'contains':
  20. console.log(params.indexOf(index));
  21. break;
  22. case 'remove':
  23. params.splice(index, 1);
  24. break;
  25.  
  26. case 'shift':
  27. let firstNumberGoingTotheEnd = params.splice(0, index);
  28. for (let num of firstNumberGoingTotheEnd) {
  29. params.push(num)
  30. }
  31. break;
  32. case 'sumPairs':
  33. if (params.length % 2 !== 0) {
  34. let howMany = Math.ceil(params.length / 2);
  35. for (let x = 0; x < howMany; x++) {
  36. let pairs = params[0] + params[1]
  37. params.splice(0, 2);
  38. params.push(pairs)
  39. }
  40. params.unshift(params.pop());
  41. } else {
  42. let howMany = params.length / 2
  43. for (let x = 0; x < howMany; x++) {
  44. let pairs = params[0] + params[1]
  45. params.splice(0, 2);
  46. params.push(pairs)
  47. }
  48. }
  49.  
  50. break;
  51. }
  52. i++
  53. [command, index, element] = array[i].split(' ');
  54. index = Number(index);
  55. element = Number(element);
  56.  
  57. }
  58. return `[ ${params.join(', ')} ]`;
  59. }
  60. console.log(arrayManipulator([1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
  61. ["sumPairs", "sumPairs", "addMany 0 -1 -2 -3", "print"]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement