js 移动数组元素的几个方法

位置交换

/**
 * @param {any[]} arr - 原始数组。
 * @param {number} fromIndex - 当前元素所在位置索引。
 * @param {number} toIndex - 移动到交换的位置索引。
 * @returns {any[]} 返回修改后的数组。
 */
const swapItem = function(arr, fromIndex, toIndex) {
    arr[toIndex] = arr.splice(fromIndex, 1, arr[toIndex])[0];
    return arr;
};

上移

const moveUpItem = function(arr, index) {
    if(index === 0) {
        return;
    }
    swapItem(arr, index, index - 1);
};

下移

const moveDownItem = function(arr, index) {
    if(index === arr.length - 1) {
        return;
    }
    swapItem(arr, index, index + 1);
};

移动至首位

const moveItemToFirst = function(arr, fromIndex) {
    let item;
    for (let i = 0; i < arr.length; i++) {
        item = arr[i];
        if (i === fromIndex) {
            arr.splice(i, 1);
            break;
        }
    }
    arr.unshift(item);
}

排序移动

const moveItem = function(arr, fromIndex, toIndex) {
    for (let i = 0; i < arr.length; i++) {
        let item = arr[i];
        if (i == fromIndex) {
            arr.splice(i, 1);
            arr.splice(toIndex, 0, item);
            break;
        }
    }
    return arr;
}

相关推荐

  1. js 移动数组元素方法

    2024-07-12 13:04:04       18 阅读
  2. js 获取元素宽高方法

    2024-07-12 13:04:04       49 阅读
  3. 【TORCH】获取第一batch数值方法

    2024-07-12 13:04:04       22 阅读
  4. next.js 种渲染方式

    2024-07-12 13:04:04       30 阅读
  5. Unity移动方式

    2024-07-12 13:04:04       57 阅读
  6. js获取dom元素宽度数值

    2024-07-12 13:04:04       58 阅读
  7. js判断对象是否为空方法

    2024-07-12 13:04:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:04:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:04:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:04:04       58 阅读
  4. Python语言-面向对象

    2024-07-12 13:04:04       69 阅读

热门阅读

  1. 使用C# 实现期望最大化算法

    2024-07-12 13:04:04       19 阅读
  2. [NLP Begin] Classical NLP Methods - HMM

    2024-07-12 13:04:04       25 阅读
  3. 【ELK】filebeat 和logstash区别

    2024-07-12 13:04:04       17 阅读
  4. 行为模式9.策略模式------促销活动设计方案

    2024-07-12 13:04:04       21 阅读
  5. Vim 编辑文件时中文乱码的解决方法

    2024-07-12 13:04:04       18 阅读
  6. vim删除多行

    2024-07-12 13:04:04       25 阅读
  7. 嵌入式裸机开发与 Linux 开发

    2024-07-12 13:04:04       21 阅读
  8. 机器学习-分类器-总结

    2024-07-12 13:04:04       18 阅读
  9. Git-如何基于某个tag创建一个新分支

    2024-07-12 13:04:04       27 阅读
  10. 【Linux】Vim 使用教程

    2024-07-12 13:04:04       17 阅读