写一个方法,让数组里的元素上移一格/下移一格

在前端开发中,处理数组上移或下移元素是一个常见的需求。以下是一个简单的JavaScript方法,用于实现数组元素的上移或下移。

function shiftArrayElement(arr, index, direction) {
  // 检查数组是否有效以及索引是否在数组范围内
  if (!Array.isArray(arr) || index < 0 || index >= arr.length) {
    return arr; // 或者抛出一个错误
  }

  // 创建数组的副本,以避免直接修改原始数组
  const newArr = [...arr];

  // 根据方向移动元素
  if (direction === 'up') {
    // 如果是第一个元素,则将其移动到数组末尾
    if (index === 0) {
      newArr.push(newArr.shift());
    } else {
      // 否则,将元素上移一格
      const temp = newArr[index];
      newArr[index] = newArr[index - 1];
      newArr[index - 1] = temp;
    }
  } else if (direction === 'down') {
    // 如果是最后一个元素,则将其移动到数组开头
    if (index === arr.length - 1) {
      newArr.unshift(newArr.pop());
    } else {
      // 否则,将元素下移一格
      const temp = newArr[index];
      newArr[index] = newArr[index + 1];
      newArr[index + 1] = temp;
    }
  }

  return newArr;
}

这个方法接受三个参数:

  1. arr:要操作的数组。
  2. index:要移动的元素的索引。
  3. direction:移动的方向,可以是 'up''down'

方法首先检查数组是否有效以及索引是否在数组范围内。然后,它创建一个数组的副本以避免直接修改原始数组。接下来,根据指定的方向,方法将元素上移或下移一格。如果是数组的第一个或最后一个元素,方法会将其循环移动到数组的末尾或开头。最后,方法返回新的数组。

你可以这样使用这个方法:

const arr = [1, 2, 3, 4, 5];
const newIndexArr = shiftArrayElement(arr, 2, 'down'); // [1, 2, 4, 3, 5]
const anotherNewIndexArr = shiftArrayElement(arr, 0, 'up'); // [2, 3, 4, 5, 1]
posted @   王铁柱6  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示