当前位置:首页 > 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方法拼接数组。

js实现批量右移

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实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现选题

js实现选题

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

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…