递归计算字符串中的元音数量(JavaScript)
Recursively count a number of vowels in a string (JavaScript)
有人能告诉我代码中做错了什么吗?我需要使用递归计算字符串中元音出现的次数。函数isVowels检查字符是否为元音,并且是否有效。但是下面的代码不起作用。。。
function countVowels(str) {
var length = str.length;
if (length == 0) {
return 0;
}
if (isVowel(str.charAt(length)) == false) {
return countVowels(str.substring(0, length - 1));
}
return 1 + countVowels(str.substring(0, length - 1));
}
字符串中的字符与数组中的元素一样,都是零索引的。您将需要使用.charAt(length-1)
,或者您将获得字符串末尾之后的字符(这将产生空字符串)。这应该做到:
function countVowels(str) {
var length = str.length;
if (length == 0) {
return 0;
}
if (isVowel(str.charAt(length - 1)) == false) {
return countVowels(str.substring(0, length - 1));
}
return 1 + countVowels(str.substring(0, length - 1));
}
然而,您可以通过不调用递归部分两次并从前面计数来简化这一点:
function countVowels(str) {
if (str.length == 0)
return 0;
return (isVowel(str.charAt(0)) ? 1 : 0) + countVowels(str.slice(1));
}
相关文章:
- 可变大小的JavaScript字符串如何成为基元类型
- 如何将angularjs中的javascript字符串输出为循环数组
- 如何使用gump任务将html转换为javascript字符串
- 替换变量时,JavaScript字符串replace()不起作用
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 如何从django中的url解析javascript字符串
- 拆分javascript字符串以获得所需的值
- 使用Bootstrap'在Javascript字符串中的popover插件
- 如何替换javascript字符串中的前三个连字符
- 将JavaScript字符串转换为整数
- jquery/javascript字符串中的撇号
- 正在对java中的javascript字符串进行转义
- 如何在Javascript字符串中添加vaule
- Javascript:字符串中有效的基于数组的替换
- 具有负值的Javascript字符串.slice()
- javascript字符串替换$1(如果它是某个值)
- 将子函数的JavaScript字符串转换为实际函数
- JavaScript字符串中的换行符也保存为.txt
- 将Javascript字符串var传递给HTML href标记
- JavaScript 字符串字母和数字检查