Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function executeCommandsOverArray(integers, commands) {
- let currentCommand = commands.shift();
- function add(arr, tokens) {
- arr.splice(tokens[0], 0, Number(tokens[1]));
- return arr;
- }
- function addMany(arr, tokens) {
- // може и със spread operator
- let index = tokens.shift();
- for (let element of tokens) {
- arr.splice(index++, 0, element);
- }
- return arr;
- }
- function remove(arr, tokens) {
- arr.splice(Number(tokens[0]), 1);
- return arr;
- }
- function shift(arr, tokens) {
- let position = Number(tokens[0]);
- while (position > 0) {
- let element = arr.shift();
- arr.push(element);
- position--;
- }
- return arr;
- }
- function sumPairs(arr) {
- let output = [];
- while (arr.length > 0) {
- let a = arr.shift() || 0;
- let b = arr.shift() || 0;
- output.push(a + b);
- }
- return output;
- }
- while (currentCommand !== "print") {
- let tokens = currentCommand.split(" ");
- switch (tokens.shift()) {
- case "add":
- integers = add(integers, tokens);
- break;
- case "addMany":
- integers = addMany(integers, tokens);
- break;
- case "contains":
- console.log(integers.indexOf(Number(tokens[0])));
- break;
- case "remove":
- integers = remove(integers, tokens);
- break;
- case "shift":
- integers = shift(integers, tokens);
- break;
- case "sumPairs":
- integers = sumPairs(integers);
- break;
- }
- currentCommand = commands.shift();
- }
- return `[ ${integers.join(", ")} ]`;
- }
Advertisement
Add Comment
Please, Sign In to add comment