首页 > 解决方案 > 如何更改 if/else 语句以在 javascript 中循环

问题描述

我想将 if/else 语句更改为函数中的循环,该函数接收字符串并返回一个新字符串,该字符串将元音字母更改为它之后的下一个字母。

function changeVowels(str) {
        var alphabet = 'abefijopuvABEFIJOPUV';
        var strNew = ""
        for(var i = 0; i < str.length; i++){
           for(var j = 0; j < alphabet.length; j++){
             if(str[i] === alphabet[j] && j%2 === 0){
               strNew += alphabet[j+1]
            }
          }
          if(str[i]==='a' || str[i]==='i' || str[i]==='u'||str[i]==='e' || str[i]==='o'){}
          else if(str[i]==='A' || str[i]==='I' || str[i]==='U'|| str[i]==='E' || str[i]==='O'){}
          else{
           strNew+=str[i]
          }
        }
        return strNew
      }

console.log(changeVowels('Car'))

如何将下面的 if/else 语句更改为循环?

if(str[i]==='a' || str[i]==='i' || str[i]==='u'||str[i]==='e' || str[i]==='o'){}
else if(str[i]==='A' || str[i]==='I' || str[i]==='U'|| str[i]==='E' || str[i]==='O'){}
else{strNew+=str[i]}

或者我不介意你改变它除了循环,或者让它更短

标签: javascriptloops

解决方案


您可以检查字符是否为元音,然后从给定字符串或实际字母中获取下一个字母。

function changeVowels(str) {
  var alphabet = 'abefijopuvABEFIJOPUV';
  var strNew = ""
  for (var i = 0; i < str.length; i++) {
    if ('aeiou'.includes(str[i].toLowerCase())) {
      strNew += alphabet[alphabet.indexOf(str[i]) + 1];
    } else {
      strNew += str[i];
    }
  }
  return strNew;
}

console.log(changeVowels('Car'))


推荐阅读