kstoyanov

01. Nikulden’s Charity js exam

Aug 11th, 2020 (edited)
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(args) {
  2.   let currentMessage = args.shift();
  3.  
  4.   let inputString = args.shift();
  5.  
  6.  
  7.   while (inputString !== 'Finish') {
  8.     const [command, arg1, arg2] = inputString.split(' ');
  9.  
  10.     switch (command) {
  11.       case 'Replace':
  12.  
  13.         currentMessage.split('').forEach((ch) => {
  14.           if (ch === arg1) {
  15.             currentMessage = currentMessage.replace(arg1, arg2);
  16.           }
  17.         });
  18.  
  19.  
  20.         console.log(currentMessage);
  21.         break;
  22.       case 'Cut':
  23.         const beginIndex = Number(arg1);
  24.         const endIndex = Number(arg2);
  25.  
  26.         if (currentMessage[beginIndex] && currentMessage[endIndex]) {
  27.           const cutStr = currentMessage.slice(beginIndex, endIndex + 1);
  28.  
  29.           currentMessage = currentMessage.replace(cutStr, '');
  30.           console.log(currentMessage);
  31.         } else {
  32.           console.log('Invalid indexes!');
  33.         }
  34.  
  35.  
  36.         break;
  37.       case 'Make':
  38.  
  39.         if (arg1 === 'Upper') {
  40.           currentMessage = currentMessage.toUpperCase();
  41.         } else if (arg1 === 'Lower') {
  42.           currentMessage = currentMessage.toLowerCase();
  43.         }
  44.         console.log(currentMessage);
  45.         break;
  46.       case 'Check':
  47.        
  48.         if (currentMessage.includes(arg1)) {
  49.           console.log(`Message contains ${arg1}`);
  50.         } else {
  51.           console.log(`Message doesn't contain ${arg1}`);
  52.        }
  53.        break;
  54.      case 'Sum':
  55.        let sumOfIndex = 0;
  56.  
  57.        if (currentMessage[Number(arg1)] && currentMessage[Number(arg2)]) {
  58.          const cutStr = currentMessage.slice(Number(arg1), Number(arg2) + 1);
  59.  
  60.  
  61.          cutStr.split('').forEach((ch) => {
  62.            const takeLeftLetterIndex = currentMessage.indexOf(ch);
  63.            const takeLetterCode = currentMessage.charCodeAt(takeLeftLetterIndex);
  64.  
  65.            sumOfIndex += takeLetterCode;
  66.          });
  67.  
  68.          console.log(sumOfIndex);
  69.        } else {
  70.          console.log('Invalid indexes!');
  71.        }
  72.        break;
  73.  
  74.      default:
  75.        break;
  76.    }
  77.  
  78.  
  79.    inputString = args.shift();
  80.  }
  81. }
Add Comment
Please, Sign In to add comment