在这里中,我将解释如何解决freeCodeCamp的“重复重复重复字符串”挑战。这涉及重复一个字符串一定次数。
我将介绍三种方法:
- 使用while循环
- 使用递归
- 使用ES6重复()方法
算法挑战说明
重复给定的字符串(第一个参数)num次(第二个参数)。如果num不是正数,则返回一个空字符串。
function repeatStringNumTimes(str, num) {
return str;
}
repeatStringNumTimes("abc", 3);
提供的测试用例
repeatStringNumTimes("*", 3) should return "***".
repeatStringNumTimes("abc", 3) should return "abcabcabc".
repeatStringNumTimes("abc", 4) should return "abcabcabcabc".
repeatStringNumTimes("abc", 1) should return "abc".
repeatStringNumTimes("*", 8) should return "********".
repeatStringNumTimes("abc", -2) should return "".
方法1:使用While循环重复字符串
只要指定条件的值为true,while语句就会执行其语句。
一会儿语句看起来像这样:
while (condition)
statement
条件,条件在每次通过循环之前进行评估。如果条件为真,则执行该语句。如果条件为假,则在while循环后继续执行任何语句。
只要条件为真,就执行该语句。解决方法如下:
function repeatStringNumTimes(string, times) {
// Step 1. Create an empty string that will host the repeated string
var repeatedString = "";
// Step 2. Set the While loop with (times > 0) as the condition to check
while (times > 0