我正在尝试计算字符串中元音的数量,但我的计数器似乎没有返回多个元数。有人可以告诉我我的代码有什么问题吗?谢谢!
var vowelCount = function(str){
var count = 0;
for(var i = 0; i < str.length; i++){
if(str[i] == 'a' || str[i] == 'i' || str[i] == 'o' ||str[i] == 'e' ||str[i] == 'u'){
count+=1;
}
}
return count;
}
console.log(vowelCount('aide'));
答案 0 :(得分:6)
return count
循环之外 for
,或使用RegExp
/[^aeiou]/ig
作为.replace()
的第一个参数,""
作为替换字符串,get { {1}}
.legnth
.replace()
说明
字符集
vowelLength = "aide".replace(/[^aeiou]/ig, "").length;
console.log(vowelLength);
vowelLength = "gggg".replace(/[^aeiou]/ig, "").length;
console.log(vowelLength);
一个否定或补充的字符集。也就是说,它匹配括号中未包含的任何内容。
标志
RegExp
忽略大小写
[^xyz]
全球比赛;找到所有比赛而不是在第一场比赛后停止
使用展开元素,支持i
,g
或Array.prototype.reduce()
String.prototype.indexOf()
或者,不是创建新字符串或新数组来获取String.prototype.contains()
属性或迭代字符串字符,而是使用const v = "aeiouAEIOU";
var vowelLength = [..."aide"].reduce((n, c) => v.indexOf(c) > -1 ? ++n : n, 0);
console.log(vowelLength);
var vowelLength = [..."gggg"].reduce((n, c) => v.indexOf(c) > -1 ? ++n : n, 0);
console.log(vowelLength);
循环,.length
和for..of
{ {1}}如果RegExp.prototype.test
评估为RegExp
传递的字符,则将最初设置为/[aeiou]/i
的变量递增。
0