Advertisement
didkoslawow

Untitled

Feb 8th, 2023 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function lettersChangeNumbers(input) {
  2.   const strings = input.split(/\s+/g);
  3.   const alphabet = 'abcdefghijklmnopqrstuvwxyz';
  4.   const stringsLength = strings.length;
  5.   let result = 0;
  6.  
  7.   for (let i = 0; i < stringsLength; i++) {
  8.     let sum = 0;
  9.     const currentWord = strings[i];
  10.     const firstLetter = currentWord[0];
  11.     const secondLetter = currentWord[currentWord.length - 1];
  12.  
  13.     const number = getNumber(currentWord);
  14.     sum += letterBeforeNumber(firstLetter, alphabet, number);
  15.     sum = letterAfterNumber(secondLetter, alphabet, sum);
  16.     result += sum;
  17.   }
  18.  
  19.   return result.toFixed(2);
  20.  
  21.   function letterBeforeNumber(letter, alphabet, number) {
  22.     const isUpperCase =
  23.       isNaN(letter) && letter.charCodeAt() > 64 && letter.charCodeAt() < 91;
  24.     const isLowerCase =
  25.       isNaN(letter) && letter.charCodeAt() > 96 && letter.charCodeAt() < 123;
  26.     const alphabetPosition = alphabet.indexOf(letter.toLowerCase()) + 1;
  27.  
  28.     if (isUpperCase) {
  29.       return number / alphabetPosition;
  30.     } else if (isLowerCase) {
  31.       return number * alphabetPosition;
  32.     }
  33.   }
  34.  
  35.   function letterAfterNumber(letter, alphabet, number) {
  36.     const isUpperCase =
  37.       isNaN(letter) && letter.charCodeAt() > 64 && letter.charCodeAt() < 91;
  38.     const isLowerCase =
  39.       isNaN(letter) && letter.charCodeAt() > 96 && letter.charCodeAt() < 123;
  40.     const alphabetPosition = alphabet.indexOf(letter.toLowerCase()) + 1;
  41.  
  42.     if (isUpperCase) {
  43.       return number - alphabetPosition;
  44.     } else if (isLowerCase) {
  45.       return number + alphabetPosition;
  46.     }
  47.   }
  48.  
  49.   function getNumber(string) {
  50.     const stringLength = string.length;
  51.     let number = '';
  52.  
  53.     for (let i = 0; i < stringLength; i++) {
  54.       if (!isNaN(string[i])) {
  55.         number += string[i];
  56.       }
  57.     }
  58.     return Number(number);
  59.   }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement