JS中递归添加字符串

2023-12-03

我正在解决一个递归问题,该问题返回一个“hi”字符串,其中第一个“hi”的大写字母 H 并且该字符串以感叹号结尾。到目前为止,我有下面的代码,但我不确定如何防止随后出现大写 H 的“hi”。欢迎任何指导。

function greeting(n) {
  if (n === 0) {
    return "";
  } else if (n === 1) {
    return "Hi!"
  } else {
    return `${'Hi' + greeting(n - 1)}`
  }
}
console.log(greeting(3)) // should return Hihihi!
console.log(greeting(5)) // should return Hihihihihi!

解决问题的一种方法是将一个标志传递给函数,指示这是否是第一次调用,并且只有在这种情况下才将hi。请注意,您可以通过返回一个稍微简化代码! when n == 0;那么你不需要特殊情况n == 1:

function greeting (n, first = true) {
  if (n === 0) {
    return "!";
  } 
  else {
    return `${(first ? 'Hi' : 'hi') + greeting(n - 1, false)}`
  } 
}
console.log(greeting(3)) // should return Hihihi!
console.log(greeting(5)) // should return Hihihihihi!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS中递归添加字符串 的相关文章

  • 如果对象包含在另一个数组中,则从数组中删除该对象

    我试图从数组中删除一个对象 如果该对象的属性 唯一 包含在另一个数组中 我知道我可以像这样执行嵌套 for 循环 for i 0 i lt array length i for j 0 j lt array2 length j if arr
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 在为 RXJS 可观察量编写测试时,如何避免让调度程序通过我的业务逻辑?

    我发现使某些测试通过的唯一方法是显式地将调度程序传递给函数 为了便于说明 请考虑以下函数 function doStuff stream return stream delay 100 filter x gt x 2 0 map x gt
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 根据 .net 后端服务器验证 Google ID

    我正在尝试为我的应用程序实现谷歌登录 后端服务器将是c net 有人可以给我指明方向 或者解释如何在 Net 中进行后端验证吗 他们提供了 java 示例并建议使用 googles api https developers google c
  • 使用 proguard 混淆 JAR 时的奇怪行为

    我正在尝试使用 Proguard 来混淆 Android JAR 4 7 但 4 6 也有问题 我可以将问题分解为一个简单的示例项目 问题 对于some函数 不清楚出于什么原因 公开函数的参数名称丢失 有时 混乱 真的 我想首先关注 丢失
  • 实体框架取消长时间运行的查询

    我是 TPL 的新手 我正在使用 TPL 对数据库进行一些异步调用 下面多次调用 GetDocumentAsync 方法 并做好将任务卸载到不同线程上的工作 以保持 UI 线程的响应能力 这里有两个目标 1 保持 UI 线程响应能力 2 让
  • Android Pie 渲染进程崩溃webview(9)

    尝试从资产文件夹加载 HTML 文件 应用程序在 Android v8 1 之前运行良好 但在 Android Pie 9 设备中崩溃 根据调试日志 WebView 渲染进程似乎崩溃了 正在寻找解决此问题的方法 请帮助和建议 提前致谢 从日
  • 如何在 Perl 中解析 strftime 格式的字符串?

    我是 Perl 新手 我想知道是否有 strftime 的反函数 看 use POSIX qw strftime print strftime YT mT d TTTT H M S localtime 我得到 2009T08T14 TTTT
  • Entity Framework Core 1.0 CurrentValues.SetValues() 不存在

    我正在尝试使用 Entity Framework Core 1 0 RC 1 更新实体及其相关子实体 其中实体与 DbContext 分离 我之前已经使用类似于此中描述的解决方案完成了此操作answer 但是 我们似乎不再能够使用 Enti
  • 不使用 64 位 int 将两个 32 位数字相乘

    我们正在使用以下算法进行一些 32 位 32 位乘法 让我们想要将 a 32 位 与 b 32 位 相乘 两者都有符号 a ah 2 16 al ah 高 16 位 al 低 16 位 b bh 2 16 bl bh 高 16 位 bl 低
  • delphi服务应用程序在15秒后停止,计时器不执行

    我想在 Delphi 中制作服务应用程序 每天下午 02 00 运行并复制一些文件 所以我用了定时器 但控制不会发生计时器事件并且服务会在 15 秒内终止 我写了一个关于定时器事件的代码 如何在服务中使用计时器 请帮忙 提前致谢 我的代码在
  • setTimeout(myFunction, 5000); vs setTimeout(myFunction(), 5000);

    我正在研究 setTimeout 函数 此代码按预期运行 function myFunction console log test setTimeout myFunction 1000 myFunction 它将每隔一个 测试 打印到控制台
  • 如何用 pandas 对浮点数进行分类

    这段代码一直有效 直到我将 python 2 x 升级到 3 x 我有一个由 3 列 ipk1 ipk2 ipk3 组成的 df ipk1 ipk2 ipk3 由浮点数 0 4 0 组成 我想把它们装进字符串中 数据看起来像这样 ipk1
  • Eclipse 中 Storm 集群关闭

    我有一个问题 我知道有麻烦 但找不到解决方案 集群没有关闭 抛出 IOException I O 方法不起作用 因为 Windows 不允许临时文件夹 我的意思是这个路径 C Users Mert AppData Local Temp 8b
  • ASP.NET Repeater 中的 ImageButton 不会触发 OnClick 事件处理程序

    我在中继器控件内有一个 ImageButton 我已将事件处理程序附加到 ImageButton 的 OnClick 事件 但是当我单击 ImageButton 时 事件不会被触发 如果我遗漏了什么 请告诉我 谢谢 我已附上 aspx 页面
  • JavaScript 双击事件?

    Scripts var timer var firing false var begen function id alert one click var popupAc function id alert double click func
  • 信箱不可用。服务器响应为:5.7.1 无法中继 [电子邮件受保护] [已关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正进入 状态 信箱不可用 服务器响应为 5 7 1 无法中继 电子邮件受保护 当我尝试使用 ASP NET 发送邮件时 该网站部署在 IIS7 Windows 2008 服务器上
  • Solaris - 为什么 java.lang.UNIXProcess.forkAndExec(Native Method) 挂起

    我有一个在 Solaris 上运行的 java 应用程序 该应用程序使用 Runtime exec 定期启动外部进程 似乎一段时间后 多次成功启动此类进程后 进程的启动将挂起 此时 以及几分钟后 进行的线程转储显示 java lang UN
  • z-index 未正确索引[重复]

    这个问题在这里已经有答案了 好的 这段代码在一个 div 中生成了两个块 顶部块应该越过底部块 因为顶部具有更高的 z index 但是当我给底部块一个 margin top 30px 时 它会超出顶部块 div style width 3
  • Firefox 中忽略网格项目的填充/边距百分比

    This codepen在 Chrome 上创建一个 100 50 px 的红色单元格网格 这是预期的行为 grid display grid grid gap 8px grid template columns 100px 100px c
  • 没有 XML 的 Android AdMob

    我有一个很大的问题要问 因为我真的被这个问题困扰了 它会被创建来在我的免费应用程序上获取广告 好吧 首先我一直在关注这本书 2011年开始Android游戏 http www apress com 9781430230427 现在这本书实现
  • Uniscan:可加载库和 perl 二进制文件不匹配

    Uniscan 是一款用于扫描 kali linux 和其他笔测试发行版中的网站的工具 我曾经每周使用它来测试我的应用程序 但在对我的 Linux 工具进行一些更新后 现在在运行它时出现以下错误 xs Moose c 可加载库和 Perl
  • JS中递归添加字符串

    我正在解决一个递归问题 该问题返回一个 hi 字符串 其中第一个 hi 的大写字母 H 并且该字符串以感叹号结尾 到目前为止 我有下面的代码 但我不确定如何防止随后出现大写 H 的 hi 欢迎任何指导 function greeting n