我应该在哪里放置 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 '));
以下是您可以参考的一些文档:
//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)
.
这段代码应该接受一个字符串和 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 '));
以下是您可以参考的一些文档:
//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)
.