Liliana797979

emoji sumator - final exam

Aug 15th, 2021
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.  
  3.     let finalWord = input.pop();
  4.  
  5.     const convertToAscii = (string) => {
  6.  
  7.         let output = [];
  8.         let result = "";
  9.  
  10.         const arr = string.split(":");
  11.  
  12.         arr.forEach((line) => {
  13.             let current = String.fromCharCode(Number(line));
  14.             output.push(current);
  15.         });
  16.  
  17.         return result += output.join('');
  18.  
  19.     };
  20.  
  21.     finalWord = ':'+convertToAscii(finalWord)+':';
  22.  
  23.     const findAllEmoji = (string) => {
  24.  
  25.         //let pattern = /\s(:[a-z]{4,}:)[\s,.!?]/gm;
  26.         let pattern = /(?<=[\s])(:[a-z]{4,}:)(?=[\s,.!?])/g;
  27.  
  28.         let validEmojis = [];
  29.         let validEmoji = null;
  30.  
  31.         while ((validEmoji = pattern.exec(string)) !== null) {
  32.             validEmojis.push(validEmoji[1]);
  33.         }
  34.  
  35.         return validEmojis;
  36.     };
  37.  
  38.     let validEmojisArray = findAllEmoji(input);
  39.  
  40.     const sumAllLetters = (line) => {
  41.  
  42.         let sum = 0;
  43.         let totalSum = 0;
  44.  
  45.         line.forEach((elem) => {
  46.             for (let i = 0; i < elem.length; i++) {
  47.  
  48.                 let current = Number(elem.charCodeAt(i));
  49.                 sum += current;
  50.             }
  51.             sum -=116
  52.         });
  53.  
  54.         return sum;
  55.     };
  56.  
  57.     let totalSum = sumAllLetters(validEmojisArray);
  58.  
  59.     if(validEmojisArray.includes(finalWord)) {
  60.         totalSum *=2;
  61.     }
  62.  
  63.  
  64.     if(validEmojisArray.length > 0) {
  65.         console.log(`Emojis found: ${validEmojisArray.join(", ")}`);
  66.     }
  67.     console.log(`Total Emoji Power: ${totalSum}`);
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment