Advertisement
Guest User

Emoji Detector

a guest
Jul 21st, 2020
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.  
  3.     let text = input.shift().split(' ')
  4.  
  5.     for (let i = 0; i < text.length; i++) {
  6.         if (text[i].endsWith(',')) {
  7.             let a = text[i].replace(',','')
  8.             text[i] = a;
  9.         }
  10.         if (text[i].endsWith('.')) {
  11.             let a = text[i].replace('.','')
  12.             text[i] = a;
  13.         }
  14.     }
  15.  
  16.     let result  = findAllDigits();
  17.     console.log(`Cool threshold: ${result}`)
  18.    
  19.     let count = 0;
  20.     let arr = [];
  21.     for (const el of text) {
  22.         if (isSurrounded(el) && isLengthValid(el) && isStartsWithCapitalLetter(el) && isContinuesWithLowerCaseLetter(el)){
  23.             count++;
  24.             arr.push(el)
  25.         }
  26.     }
  27.     console.log(`${count} emojis found in the text. The cool ones are:`)
  28.  
  29.     let emojies = arr.join(' ');
  30.  
  31.     emojies = emojies.replace('::','')
  32.    
  33.         while (emojies.indexOf('::') > -1) {
  34.             emojies = emojies.replace('::','')
  35.         }
  36.         while (emojies.indexOf('**') > -1) {
  37.             emojies = emojies.replace('**','')
  38.         }
  39.     let arrEmojies = emojies.split(' ')
  40.      
  41.    
  42.     for (const el of arrEmojies) {
  43.         let sum = 0;
  44.         for (let i = 0; i < el.length; i++) {
  45.            
  46.             let asciiValue = el[i].charCodeAt();
  47.             sum += asciiValue;
  48.    
  49.         }
  50.         if (sum > result) {
  51.             console.log(el)
  52.         }
  53.     }
  54.  
  55.  
  56.     function isSurrounded(el) {
  57.  
  58.         let isTrue = false;
  59.         if ((el.startsWith('::') && el.endsWith('::'))
  60.         || (el.startsWith('**') && el.endsWith('**'))) {
  61.             isTrue = true;
  62.         } else {
  63.             isTrue = false
  64.         }
  65.         return isTrue;
  66.     }
  67.  
  68.     function isLengthValid(el) {
  69.        
  70.         let isTrue = false;
  71.         if (el.startsWith('::')) {
  72.             el = el.replace('::','');
  73.         } if (el.endsWith('::')) {
  74.             el = el.replace('::','');
  75.         } if (el.startsWith('**')) {
  76.             el = el.replace('**','');
  77.         } if (el.endsWith('**')) {
  78.             el = el.replace('**','');
  79.         } if (el.length >= 3) {
  80.             isTrue = true;
  81.         }
  82.         return isTrue;
  83.     }
  84.  
  85.     function isStartsWithCapitalLetter(el) {
  86.         let isTrue = false;
  87.         if (el.startsWith('::')) {
  88.             el = el.replace('::','');
  89.         } if (el.endsWith('::')) {
  90.             el = el.replace('::','');
  91.         } if (el.startsWith('**')) {
  92.             el = el.replace('**','');
  93.         } if (el.endsWith('**')) {
  94.             el = el.replace('**','');
  95.         }
  96.         let asciiValue = el.charCodeAt(0);
  97.         return asciiValue >= 65 && asciiValue <= 90;
  98.     }
  99.  
  100.     function isContinuesWithLowerCaseLetter(el) {
  101.  
  102.         let isTrue = false;
  103.  
  104.         if (el.startsWith('::')) {
  105.             el = el.replace('::','');
  106.         } if (el.endsWith('::')) {
  107.             el = el.replace('::','');
  108.         } if (el.startsWith('**')) {
  109.             el = el.replace('**','');
  110.         } if (el.endsWith('**')) {
  111.             el = el.replace('**','');
  112.         }
  113.         for (let i = 1; i < el.length; i++) {
  114.             let asciiValue = el[i].charCodeAt(0);
  115.             if (el[i] == el[i].toLowerCase() && (asciiValue >= 97 && asciiValue <= 122)){
  116.  
  117.                 isTrue = true;
  118.  
  119.             } else {
  120.                 isTrue = false;
  121.                 break;
  122.             }
  123.         }
  124.         return isTrue;
  125.     }
  126.    
  127.     function findAllDigits(el) {
  128.         let arr = [];
  129.         let multiplying = 1;
  130.         for (const el of text) {
  131.             for (let i = 0; i < el.length; i++) {
  132.                 let asciiValue = el[i].charCodeAt();
  133.  
  134.                 if (asciiValue >= 48 && asciiValue <= 57) {
  135.                     arr.push(el[i])
  136.                 }
  137.             }
  138.         }
  139.         for (const el of arr) {
  140.             multiplying *= Number(el);
  141.  
  142.         }
  143.         return multiplying;
  144.     }
  145.  
  146. }
  147.  
  148. solve(
  149.     [
  150.         'In the Sofia Zoo there are 311 animals in total! ::Smiley:: This includes 3 **Tigers**, 1 ::Elephant:, 12 **Monk3ys**, a **Gorilla::, 5 ::fox:es: and 21 different types of :Snak::Es::. ::Mooning:: **Shy**'
  151.     ]
  152. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement