题目链接:Repeat a string repeat a string
要求:接受一个字符串str和数字num,返回一个重复了n次str的新字符串。
测试条件:
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 "".
方法一、使用while循环
function repeatStringNumTimes(string, times) {
var repeatedString = "";
while (times > 0) {
repeatedString += string;
times--;
}
return repeatedString;
}
repeatStringNumTimes("abc", 3);
方法二、使用递归。
function repeatStringNumTimes(str, num) {
if(num < 0){
return '';
}
if(num === 1){
return str + "";
}
else{
return str + repeatStringNumTimes(str, num - 1);
}
}
repeatStringNumTimes("abc", 3);
代码解释:
1、使用递归要注意base case,这里的base case就是小于0和等于1的情况;
方法三:使用新的String.prototype.repeat()
function repeatStringNumTimes(str, num) {
return num > 0 ? str.repeat(num) : '';
}
repeatStringNumTimes("abc", 3);
代码解释:
1、repeat()构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
2、此方法已添加到ECMAScript 2015规范中,并且可能尚未在所有JavaScript实现中可用,使用的时候记得查看mdn
网友评论