当前位置:首页 > JavaScript

js实现批量右移

2026-02-03 06:42:26JavaScript

实现数组批量右移的方法

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

js实现批量右移

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

js实现批量右移

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实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

vue实现批量删除

vue实现批量删除

实现批量删除功能 在Vue中实现批量删除通常需要结合表格多选功能和API调用。以下是一个完整的实现方案: 表格多选功能实现 使用Element UI的表格组件实现多选功能: <templat…

js实现选题

js实现选题

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

js实现吸色

js实现吸色

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

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…