当前位置:首页 > 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
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…