题目源自freecodecamp。
将一个给定的字符串(第一个参数, str)重复 num(第二个参数)次。如果 num不是一个正数,返回一个空字符串。
以下为3种不同的方法:
// 1. Array, fill, join
function multiStr(str, num){
return num > 0
? (new Array(num).fill(str).join(""))
: "";
}
// 2.递归-if判断
function repeatStringNumTimes(str, num) {
if (num < 1) {
return "";
} else if (num === 1) {
return str;
} else {
return str + repeatStringNumTimes(str, num - 1);
}
}
//3.递归-三目
function repeatStringNumTimes(str, num) {
return num > 0 ? str + repeatStringNumTimes(str, num - 1) : '';
}
实现效果:
实现代码:
<!DOCTYPE html>
<html>
<body>
<p id="id1"></p>
<p id="id2"></p>
<p id="id3"></p>
</body>
<script>
// 1. Array, fill, join
function multiStr(str, num){
return num > 0
? (new Array(num).fill(str).join(""))
: "";
}
// 2.递归-if判断
function repeatStringNumTimes(str, num) {
if (num < 1) {
return "";
} else if (num === 1) {
return str;
} else {
return str + repeatStringNumTimes(str, num - 1);
}
}
//3.递归-三目
function repeatStringNumTimes2(str, num) {
return num > 0 ? str + repeatStringNumTimes(str, num - 1) : '';
}
let strResult1 = multiStr("abc", 4);
let strResult2 = repeatStringNumTimes("cdd",2);
let strResult3 = repeatStringNumTimes2('ee1', 5);
document.getElementById("id1").innerHTML = strResult1;
document.getElementById("id2").innerHTML = strResult2;
document.getElementById("id3").innerHTML = strResult3;
</script>
</html>