当前位置:首页 > JavaScript

js实现批量右移

2026-03-16 07:41:17JavaScript

实现数组元素批量右移的方法

通过交换元素位置实现右移操作,以下是具体实现方式:

function batchRightShift(arr, shiftCount) {
  const len = arr.length;
  shiftCount = shiftCount % len;

  reverse(arr, 0, len - 1);
  reverse(arr, 0, shiftCount - 1);
  reverse(arr, shiftCount, len - 1);

  return arr;
}

function reverse(arr, start, end) {
  while (start < end) {
    [arr[start], arr[end]] = [arr[end], arr[start]];
    start++;
    end--;
  }
}

使用临时数组的实现方式

创建临时数组存储被移动元素:

function rightShiftWithTemp(arr, k) {
  const n = arr.length;
  k = k % n;
  const temp = arr.slice(n - k);

  for (let i = n - 1; i >= k; i--) {
    arr[i] = arr[i - k];
  }

  for (let i = 0; i < k; i++) {
    arr[i] = temp[i];
  }

  return arr;
}

处理字符串右移的情况

字符串可以转换为数组处理后再转回字符串:

function stringRightShift(str, shift) {
  const arr = str.split('');
  const shifted = batchRightShift(arr, shift);
  return shifted.join('');
}

性能优化建议

对于大型数组,使用三次反转法效率更高,时间复杂度为O(n),空间复杂度为O(1)。临时数组方法虽然直观,但需要额外空间。

js实现批量右移

实际应用中应根据数据规模选择合适方法,并注意处理shiftCount大于数组长度的情况。

标签: 批量js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

vue 实现批量关注

vue 实现批量关注

实现批量关注的思路 批量关注功能通常涉及前端界面交互与后端接口的配合。以下是基于Vue的实现方案: 前端界面设计 使用v-for渲染用户列表,每个用户项包含复选框和关注按钮。通过v-model绑定选…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…