为什么下面的代码块不输出字符串?
我希望在传递num = 1时它应该显示abc。
我在这里缺少什么?
function repeatStringNumTimes(str, num) {
return Array(num).join(str);
}
console.log(repeatStringNumTimes("abc", 1));

答案 0 :(得分:9)
Array#join
至少需要两个带分隔符的元素,因为一个元素只是转换为字符串而且不需要任何 glue 。
function repeatStringNumTimes(str, num) {
return Array(num + 1).join(str);
}
console.log(repeatStringNumTimes("abc", 1));
答案 1 :(得分:2)
如果您只需要重复一次字符串n次,请使用ES6的String.repeat
,如下所示:
'myString'.repeat(repeatTimes);
或基于阵列的解决方案(不推荐用于您的问题):
new Array(repeatTimes).fill('myString').join('');
如果您需要ES5解决方案,请使用lodash
fn repeat
:
_.repeat('abc', 2);
答案 2 :(得分:-1)
正确的方法应该是
str.repeat(num)