JavaScript:我在 JavaScript 中练习递归,并试图从条件返回 true 或 false,但什么也没看到

标签 javascript recursion

标题几乎说明了一切。我知道还有其他方法可以确定字符串是否是回文(例如,将字符串转换为数组、反转它、加入它,并将生成的字符串与原始字符串进行比较),但我只是想使用递归目前。返回预期值的唯一场景如下:

isPalindrome("a"); // true
isPalindrome("aalsdjlkjdfsdkjf"); // false

这不会返回任何内容:

isPalindrome("amma"); // 

这是我的函数代码:

function isPalindrome (str) {
  if (str.length <= 1) {
    return true;
  } else if (str.charAt(0) == str.slice(-1)) {
    isPalindrome(str.slice(1,-1));
  } else {
    return false;
  }
};

最佳答案

在你的条件的第二个分支中,你想要返回结果:

return isPalindrome(str.slice(1,-1));

否则它只是完成递归调用,退出if语句,并返回undefined(因为它在结束之前没有遇到return语句的功能)。

关于JavaScript:我在 JavaScript 中练习递归,并试图从条件返回 true 或 false,但什么也没看到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984540/

相关文章:

java - 在java中的二叉树递归函数中存储计数器

javascript - 自动部署 JavaScript、CSS 和 HTML 的工具?

javascript - 最小尺寸与纵横比调整图像大小

javascript - ZK:如何使用 JavaScript 在客户端填充 zk 组合框

javascript - IE 7 中出现奇怪的 javascript 错误,但 IE 8 中没有

algorithm - 不使用递归重写递归函数

javascript - 如何将任何类型对象分配\转换\转换为特定类型?

javascript - 在javascript中的对象中设置具有未知深度的属性值

python - pip install --upgrade sqlalchemy 超出最大递归深度

javascript - 递归打印字符串的所有排列(Javascript)