数组上、下移动

该文章介绍了一个名为UpDownFunction的JavaScript类,用于在数组中实现元素的上移和下移操作。通过swapItems方法交换指定索引的元素,根据传入的index调整元素位置。示例代码展示了如何在给定数组中应用这个功能。
摘要由CSDN通过智能技术生成

循环添加后可上下移动

上下移动

/**
 * UpDownFunction: 上移和下移
 * @params {*} arr: 数组
 * @params {*} index:需要处理的index
 * upData: 这是上移
 * downData: 这是下移
 */
export default class UpDownFunction {
  constructor(arr = [], index) {
    this.arr = arr
    this.index = index
  }

  swapItems(arr, index1, index2) {
    arr[index1] = arr.splice(index2, 1, arr[index1])[0]
    return arr
  }

  upData() {
    let newArr = []
    if (this.arr.length > 1 && this.index !== 0) {
      newArr = this.swapItems(this.arr, this.index, this.index - 1)
    }
    return newArr
  }
  downData() {
    let newArr = []
    if (this.arr.length > 1 && this.index !== (this.arr.length - 1)) {
      newArr = this.swapItems(this.arr, this.index, this.index + 1)
    }
    return newArr
  }
}

调用方式

const array = [
  {
    label:'测试1',
    id:1
  },
  {
    label:'测试2',
    id:2
  },
  {
    label:'测试3',
    id:3
  }
]
const upDataArray = []
const UpDownFunctions = new UpDownFunction(array, val.index)
this.upDataArray= UpDownFunctions.upData()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,可以使用指针来操作二维数组进行上下左右移动。下面是一个示例代码,演示了如何使用指针来实现二维数组的上下左右移动: ```c #include <stdio.h> void moveUp(int** arr, int rows, int cols, int* row, int* col) { if (*row > 0) { (*row)--; } } void moveDown(int** arr, int rows, int cols, int* row, int* col) { if (*row < rows - 1) { (*row)++; } } void moveLeft(int** arr, int rows, int cols, int* row, int* col) { if (*col > 0) { (*col)--; } } void moveRight(int** arr, int rows, int cols, int* row, int* col) { if (*col < cols - 1) { (*col)++; } } int main() { int rows = 3; int cols = 3; // 创建二维数组 int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // 将二维数组转换为指针数组 int* ptrArr[3]; for (int i = 0; i < rows; i++) { ptrArr[i] = arr[i]; } // 初始化当前位置 int row = 0; int col = 0; // 向上移动 moveUp(ptrArr, rows, cols, &row, &col); printf("当前位置:(%d, %d),值:%d\n", row, col, ptrArr[row][col]); // 向下移动 moveDown(ptrArr, rows, cols, &row, &col); printf("当前位置:(%d, %d),值:%d\n", row, col, ptrArr[row][col]); // 向左移动 moveLeft(ptrArr, rows, cols, &row, &col); printf("当前位置:(%d, %d),值:%d\n", row, col, ptrArr[row][col]); // 向右移动 moveRight(ptrArr, rows, cols, &row, &col); printf("当前位置:(%d, %d),值:%d\n", row, col, ptrArr[row][col]); return 0; } ``` 在上面的代码中,我们首先创建了一个3x3的二维数组`arr`,然后将其转换为指针数组`ptrArr`。接下来,我们使用`row`和`col`变量来表示当前位置的行和列。通过调用`moveUp`、`moveDown`、`moveLeft`和`moveRight`函数,可以实现二维数组的上下左右移动。每次移动后,我们打印出当前位置和对应的值。 需要注意的是,二维数组在内存中是按行存储的,因此在将二维数组转换为指针数组时,需要将每一行的地址存储到指针数组中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值