有没有标准的方法来记录递归函数?

时间:2016-09-18 08:06:40

标签: javascript recursion

只是想知道是否有标准符号或至少是指定递归函数的通用符号?

我不知道它是否重要,但我希望尽可能多地在我的函数docblock中提供信息,所以我通常只会添加“这是一个递归函数”之类的内容。

这是一个例子,所以我们都在考虑在同一个地方记录。我的例子是使用ES2015 Javascript

/**
 * Replace $nbsp;'s with actual spaces and return the message
 *
 * Recursive
 *
 * @param {string} message The string to be cleaned
 *
 * @returns {string}
 * @private
 */
_replaceSpaces(string) {
  const cleanedString = string.replace(' ', ' ');
  if (cleanedString.indexOf(' ') > -1) {
    return this._replaceSpaces(cleanedString);
  }

  return cleanedString;
}

2 个答案:

答案 0 :(得分:1)

您的函数使用递归与否的事实并不是该函数的用户应该关心的事情。这更像是为了让自己被提醒,并且不需要在文档中提及。

在这种特殊情况下是否使用递归是最好的方法是另一回事。

<强>更新 Doind一个正则表达式字符串替换应该做的工作。

str.replace(/&nbsp;/g, ' ')

答案 1 :(得分:0)

当我深入研究某个功能并逐渐意识到它与我一直在查看/逐步执行的功能相同时,我总是会感到有些惊讶。我期望一个正常的提取或重载函数,而不是一个自我调用。因此,我想在递归站点上发表这样的评论:

if (cleanedString.indexOf('&nbsp;') > -1) {
    // Recursively continue removing spaces.
    return this._replaceSpaces(cleanedString);
}