js实现repeat
实现 JavaScript 的 repeat 功能
在 JavaScript 中,可以通过多种方式实现字符串或操作的重复执行。以下是几种常见的方法:
使用 String.prototype.repeat()
JavaScript 原生提供了 repeat() 方法,用于重复字符串指定次数:
const str = 'abc';
const repeatedStr = str.repeat(3); // 'abcabcabc'
自定义 repeat 函数
如果需要自定义重复逻辑(如重复非字符串操作),可以编写一个通用的 repeat 函数:
function repeat(fn, times) {
for (let i = 0; i < times; i++) {
fn();
}
}
// 示例:重复打印 3 次
repeat(() => console.log('Hello'), 3);
数组填充实现
利用数组的 fill 和 join 方法模拟字符串重复:
function repeatStr(str, times) {
return Array(times).fill(str).join('');
}
const result = repeatStr('xyz', 2); // 'xyzxyz'
递归实现
通过递归调用实现重复操作:
function repeatRecursive(str, times) {
return times <= 0 ? '' : str + repeatRecursive(str, times - 1);
}
const output = repeatRecursive('123', 2); // '123123'
性能优化版本
对于高频调用场景,可以使用性能更优的实现:

function fastRepeat(str, times) {
let result = '';
while (times-- > 0) result += str;
return result;
}
注意事项
- 原生
repeat()方法在大多数现代浏览器中支持,但在旧版本(如 IE)中需要 polyfill。 - 自定义实现时需处理边界条件(如
times为负数或非整数)。 - 高频重复长字符串时,避免使用递归或简单循环,可能导致性能问题。






