返回仅元音大写的字符串

0 javascript

我想返回变量newString,只有元音大写.不知道如何继续.使用if/else块尝试但我的逻辑不正确.

function LetterChanges(str) {
var newArray = [];
for (var i = 0; i < str.length; i++) {
    var strCode = str.charCodeAt(i) + 1;
    var strLetter = String.fromCharCode(strCode);
    newArray.push(strLetter);
    var newString = newArray.join("");
    }
  return newString;
}

LetterChanges("hello");
Run Code Online (Sandbox Code Playgroud)

JLR*_*she 7

这与您的方法不同,但您可以这样做:

function LetterChanges(str) {
  return str.toLowerCase().replace(/[aeiou]/g, function(l) {
    return l.toUpperCase();
  });
}

console.log(LetterChanges("The Quick Brown Fox Jumped Over The Lazy Dog"));
Run Code Online (Sandbox Code Playgroud)


这是一种更接近您的尝试并使用更简单概念的方法:

function LetterChanges(str) {
    var newArray = [];
    for (var i = 0; i < str.length; i++) {
        var ch = str.charAt(i);
        if ('aeiouAEIOU'.indexOf(ch) !== -1) {
           newArray.push(ch.toUpperCase());
        } else {
           newArray.push(ch.toLowerCase());
        }
    }

    return newArray.join("");
}
Run Code Online (Sandbox Code Playgroud)