javascript递归计数器

温琴佐

我尝试重写此indexOf MDN示例以练习递归

var str = 'To be, or not to be, that is the question.';
var count = 0;
var pos = str.indexOf('e');

while (pos !== -1) {
  count++;
  pos = str.indexOf('e', pos + 1);
}

console.log(count); // displays 4

这是我的解决方案:

var count = 0;

function countLetters(str, p) {
  var pos = str.indexOf(p);
  if (pos == -1) {
    return count;
  }
  else {
    count ++;
    return countLetters(str.substr(pos + 1), p)
  }
}
console.log(countLetters('To be, or not to be, that is the question.', 'e'));

它可以工作,但是仍然可以在函数本身内部获取count变量吗?如果我在函数外部有一个count变量,那不是真的递归吗?

阿伦·约翰尼

您可以做的是从方法中返回计数值,因此,如果找不到该项目,则返回0,否则返回 1 + value-of-recursive-call

function countLetters(str, p) {
    var pos = str.indexOf(p);
    if (pos == -1) {
        return 0;
    } else {
        return 1 + countLetters(str.substr(pos + 1), p)
    }
}
console.log(countLetters('To be, or not to be, that is the question.', 'e'));

演示:小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带循环计数器的递归查询

来自分类Dev

递归函数内部的计数器

来自分类Dev

带计数器的递归程序?

来自分类Dev

用递归方法重置计数器

来自分类Dev

方案中的递归原子计数器

来自分类Dev

Java数组索引计数器递归

来自分类Dev

堆递归质数计数器python

来自分类Dev

递归函数中的计数器

来自分类Dev

JavaScript计数器问题

来自分类Dev

JavaScript 重启计数器

来自分类Dev

JavaScript音节计数器-每行计数

来自分类Dev

没有计数器,递归方法如何计数?

来自分类Dev

没有计数器,递归方法如何计数?

来自分类Dev

如何为递归函数添加计数器?[Python]

来自分类Dev

如何在递归AJAX调用中保留计数器?

来自分类Dev

Java:保存递归本地计数器的值

来自分类Dev

如何为递归函数添加计数器?[Python]

来自分类Dev

PHP:如何从递归函数返回值的计数器?

来自分类Dev

在每个新的递归上重置Collatz计数器

来自分类Dev

如何在递归AJAX调用中保留计数器?

来自分类Dev

使用计数器创建递归函数

来自分类Dev

javascript访问for循环中的计数器

来自分类Dev

HTML / Javascript按钮单击计数器

来自分类Dev

使用JavaScript创建连续计数器?

来自分类Dev

Javascript第二计数器

来自分类Dev

彩票猜猜程序计数器JavaScript

来自分类Dev

JavaScript数字计数器中的错误

来自分类Dev

HTML / Javascript按钮单击计数器

来自分类Dev

计数器无法在JavaScript上运行