当前位置:首页 > JavaScript

js实现repeat

2026-02-01 14:54:06JavaScript

实现字符串重复功能

在JavaScript中实现字符串重复功能可以通过多种方式完成。以下是几种常见的方法:

使用String.prototype.repeat()方法

ES6引入了原生字符串重复方法,直接调用即可:

const repeatedStr = 'abc'.repeat(3); // 返回'abcabcabc'

使用数组和join方法

通过创建指定长度的数组并用目标字符串连接:

function repeat(str, count) {
  return Array(count + 1).join(str);
}

使用循环拼接

基础循环实现方式:

function repeat(str, count) {
  let result = '';
  for (let i = 0; i < count; i++) {
    result += str;
  }
  return result;
}

递归实现

递归方式实现重复:

function repeat(str, count) {
  return count > 0 ? str + repeat(str, count - 1) : '';
}

性能优化版本

对于大量重复操作可使用二分法优化:

function repeat(str, count) {
  let res = '';
  while (count > 0) {
    if (count % 2 === 1) res += str;
    str += str;
    count >>= 1;
  }
  return res;
}

实现函数重复执行

如果需要重复执行某个函数,可以采用以下方式:

基本循环调用

function repeat(fn, times) {
  for (let i = 0; i < times; i++) fn();
}

使用setInterval实现间隔重复

function repeat(fn, times, interval) {
  let count = 0;
  const timer = setInterval(() => {
    fn();
    if (++count >= times) clearInterval(timer);
  }, interval);
}

递归实现延迟重复

js实现repeat

function repeat(fn, times, delay) {
  if (times <= 0) return;
  fn();
  setTimeout(() => repeat(fn, times - 1, delay), delay);
}

这些实现方式覆盖了字符串重复和函数重复执行的不同场景,可以根据具体需求选择合适的方法。原生repeat方法在支持ES6的环境中最简洁高效,其他方法提供了更多自定义控制的可能性。

标签: jsrepeat
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…