当前位置:首页 > JavaScript

js实现批量右移

2026-02-03 06:42:26JavaScript

实现数组批量右移的方法

数组右移指的是将数组中的元素向右移动k个位置,超出数组长度的部分从头部开始填充。以下是几种实现方法:

方法一:使用临时数组 创建一个临时数组存储移动后的元素,再将结果复制回原数组。

function rotateRight(arr, k) {
    const n = arr.length;
    k = k % n;
    const temp = [];
    for (let i = 0; i < n; i++) {
        temp[(i + k) % n] = arr[i];
    }
    for (let i = 0; i < n; i++) {
        arr[i] = temp[i];
    }
    return arr;
}

方法二:三次反转法 通过三次反转操作实现右移,无需额外空间。

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

function rotateRight(arr, k) {
    const n = arr.length;
    k = k % n;
    reverse(arr, 0, n - 1);
    reverse(arr, 0, k - 1);
    reverse(arr, k, n - 1);
    return arr;
}

方法三:使用splice和concat 利用数组的splice和concat方法拼接数组。

function rotateRight(arr, k) {
    const n = arr.length;
    k = k % n;
    const part = arr.splice(n - k, k);
    return part.concat(arr);
}

注意事项

  • 当k大于数组长度时,取模运算k % n确保移动次数在合理范围内。
  • 方法二的空间复杂度为O(1),适合处理大数据量。
  • 方法三简洁但会修改原数组。

以上方法均可实现数组批量右移,根据实际需求选择合适的方式。

js实现批量右移

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

相关文章

js实现倒计时

js实现倒计时

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

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js如何实现继承

js如何实现继承

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

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Ja…