Advertisement
BoGeo

Numbers edited

Nov 8th, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. const getGets = (arr) => {
  2. let index = 0;
  3.  
  4. return () => {
  5. const toReturn = arr[index];
  6. index += 1;
  7. return toReturn;
  8. };
  9. };
  10.  
  11. const test = [
  12.  
  13. "set 2",
  14. "print",
  15. "front-add 1",
  16. "print",
  17. "back-add 2",
  18. "print",
  19. "front-remove",
  20. "print",
  21. "set 4",
  22. "print",
  23. "print",
  24. "front-add 1",
  25. "print",
  26. "back-add 3",
  27. "print",
  28. "reverse",
  29. "print",
  30. "end"
  31.  
  32. ];
  33.  
  34.  
  35. const gets = this.gets || getGets(test);
  36. const print = this.print || console.log;
  37.  
  38. // code
  39.  
  40. var arr = [];
  41. for (var i = 0; i < test.length; i++) {
  42.  
  43. arr.push(gets());
  44. }
  45.  
  46.  
  47.  
  48. var code = [];
  49.  
  50. for (var y= 0; y < arr.length; y++) {
  51.  
  52. if (arr[y].search('set') !== -1) {
  53. code[y] = 'set';
  54. }
  55.  
  56. if (arr[y].search('front-add') !== -1) {
  57. code[y] = 'front-add';
  58. }
  59.  
  60. if (arr[y].search('back-add') !== -1) {
  61. code[y] = 'back-add';
  62. }
  63.  
  64. if (arr[y]==='print') {
  65. code[y] = 'print';
  66. }
  67.  
  68. if (arr[y]==='front-remove') {
  69. code[y] = 'front-remove';
  70. }
  71.  
  72. if (arr[y]==='back-remove') {
  73. code[y] = 'back-remove';
  74. }
  75.  
  76. if (arr[y]==='reverse') {
  77. code[y] = 'reverse';
  78. }
  79.  
  80. if (arr[y]==='end') {
  81. code[y] = 'end';
  82. }
  83.  
  84. }
  85.  
  86.  
  87. for (var x=0; x < code.length; x++) {
  88. switch(code[x]) {
  89.  
  90. case 'set':
  91.  
  92. var result = arr[x].slice(4);
  93.  
  94. break;
  95.  
  96. case 'front-add':
  97. var digit1 = arr[x].slice(10);
  98. result = digit1 + result;
  99. break;
  100.  
  101. case 'back-add':
  102. var digit2 = arr[x].slice(9);
  103. result = result + digit2;
  104. break;
  105.  
  106. case 'front-remove':
  107. result = result.slice(1);
  108. break;
  109.  
  110. case 'print':
  111. print(result);
  112. break;
  113.  
  114. case 'back-remove':
  115. result = result.substring(0, result.length-1);
  116. break;
  117.  
  118. case 'reverse':
  119. result = result.split("").reverse().join("");
  120. break;
  121.  
  122. case 'end':
  123. code[x +1] = '';
  124. break;
  125.  
  126. }
  127.  
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement