Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way I can merge all my functions and for-loop into one function since I need (str) to be given by the site

Tags:

javascript

I need this to work without Hard-Coding (str), but instead given by the actual site. Is it even possible? Yes I understand my Order is unusual, However it works lol. Thanks for any assistance I may receive. With this function I need to receive an string of works and return the next increment of the letter ex(a=b, b=c, e=f). Also returns any vowels as UpperCased. input: "hello3" Output: Ifmmp3

input: "fun times!" output: gvO Ujnft!

let str = ['f', 'u', 'n', ' ', '', 'i', 'm', 'e', 's', '!', 'n', 'n'];

function replaceLetter(letter) {
///above is fixed and cannot be edited

  return letter.replace(/([a-zA-Z])[^a-zA-Z]*$/, function (nextLetter) {
    var letter = nextLetter.charCodeAt(0);
    switch (letter) {
      case 90:
        return 'A';
      case 122:
        return 'a';
      default:
        return String.fromCharCode(++letter);
    }
  });
}
var vowels = 'aeiou';
let emptyStr = [];
let finalStr = '';
let holder = '';
for (const i of str) {
  [emptyStr.push(replaceLetter(i))].join().replaceAll(',', '');
}
for (let i = 0; i < emptyStr.length; i++) {
  if (vowels.indexOf(emptyStr[i]) >= 0) {
    finalStr += emptyStr[i].toUpperCase();
  } else {
    finalStr += emptyStr[i];
  }
}
console.log(finalStr);```
like image 470
Ivan Trejo Avatar asked Nov 23 '25 20:11

Ivan Trejo


1 Answers

var vowels = "aeiou";
let received_str = "hello"; // the dynamic string you'll recieve

function replaceLetters(string) {
  ///above is fixed and cannot be edited
  let finalStr = "";
  let str = [...string];
  str.forEach((element) => {
    let nextLetter = element.replace(/([a-zA-Z])[^a-zA-Z]*$/, function (
      nextLetter
    ) {
      var letter = nextLetter.charCodeAt(0);
      switch (letter) {
        case 90:
          return "A";
        case 122:
          return "a";
        default:
          return String.fromCharCode(++letter);
      }
    });
    if (nextLetter !== ",") {
      if (vowels.indexOf(nextLetter) >= 0) {
        finalStr += nextLetter.toUpperCase();
      } else {
        finalStr += nextLetter;
      }
    }
  });
  return finalStr;
}

console.log(replaceLetters(received_str));
like image 142
Aya Mostafa Avatar answered Nov 25 '25 08:11

Aya Mostafa