我应该在哪里放置 return 语句以获得所需的输出?阅读我的代码注释。谢谢

Where should I place the return statement to get the desired output? Read my code comments. Thanks

这段代码应该接受一个字符串和 return 和 return 没有元音的字符串。 正如您从下面的输出中看到的那样,它正在工作,因为它 returns 第一个编码让我发疯而没有疯狂,第二个没有 e 等等......

function removeVowelFromString(string) {
let newCharactersArray = []; 
charactersArray = string.split('');
let vowels = ['a','e','i','o','u'];

for (const vowel of vowels) {

  for (let i = 0; i < charactersArray.length; i++) {        
     if (vowel === charactersArray[i]) {
      continue;
    }
    else {
      newCharactersArray.push(charactersArray[i]);
    }
  }
}
return newCharactersArray.join(''); 
}
console.log(removeVowelFromString('Coding is driving me crazy '));

//一行输出 //编码快把我逼疯了

可以使用includes方法判断charactersArray[i]中的单词是否为元音,单循环就够了

function removeVowelFromString(string) {
let newCharactersArray = []; 
charactersArray = string.split('');
let vowels = ['a','e','i','o','u'];

for (let i = 0; i < charactersArray.length; i++) {        
   if (vowels.includes(charactersArray[i])) {
    continue;
  }
  else {
    newCharactersArray.push(charactersArray[i]);
  }
}
return newCharactersArray.join(''); 
}
console.log(removeVowelFromString('Coding is driving me crazy '));

如果你只想匹配元音,你可以这样做:

function removeVowelFromString(string) {
let newCharactersArray = []; 
charactersArray = string.split('');
let vowels = ['a','e','i','o','u'];

for (let i = 0; i < charactersArray.length; i++) {        
  if (!vowels.includes(charactersArray[i])) {
    continue;
  }
  else {
    newCharactersArray.push(charactersArray[i]);
  }
}
return newCharactersArray.join(''); 
}
console.log(removeVowelFromString('Coding is driving me crazy '));

以下是您可以参考的一些文档:

string.includes

Spread Syntax

Filter

LowerCase

//you could do it like
function removeVowelFromString(string) {
    let vowels = "aeiou";
      return [...string].filter(x => !vowels.includes(x.toLowerCase())).join("");
}

console.log(removeVowelFromString("Will remove vowels from this string"))

希望我能帮到你。

正如其中一条评论所建议的那样。通过创建一个 isVowel() 函数来分解问题,并仅遍历字符串中的所有字符一次以检查给定字符是否为元音:

function isVowel(c) {
    return ['a','e','i','o','u'].includes(c);
};

function removeVowelFromString(string) {
    let newCharactersArray = []; 
    charactersArray = string.split('');

    for (let i = 0; i < charactersArray.length; i++) {        
        if (isVowel(charactersArray[i])) {
            continue;
        }
        else {
            newCharactersArray.push(charactersArray[i]);
        }
    }
    return newCharactersArray.join(''); 
}

console.log(removeVowelFromString('Coding is driving me crazy '));

此代码以 O(n * k) 时间复杂度运行,其中 n 是字符串的长度, k 是英语中元音的数量(即 5. 所以整体复杂度是 O(5n) = O(5).