js 将一维数组每组5个拆分为二维数组

js yekong

vue 数据大屏项目开发中,客户要求进行轮播显示,页面里面每次可以展示5个,所以这里需要将一维数组5个为一组拆分为2维数组,然后进行轮播显示。接下来我们要对数组进行处理。当然使用lodash也是可以实现这种效果的,lodash 将数组拆分成多个 size 长度的区块,并将这些区块组成一个新数组,不过这次想看看普通的js是如何实现的。

可以使用双重循环将一维数组拆分为二维数组,每5个元素为一组。具体实现如下:

function splitArray(arr) {
  const result = [];
  const len = arr.length;
  for (let i = 0; i < len; i += 5) {
    const row = [];
    for (let j = 0; j < 5; j++) {
      if (i + j < len) {
        row.push(arr[i + j]);
      }
    }
    result.push(row);
  }
  return result;
}
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
const result = splitArray(arr);
console.log(result); // [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11]]

在上面的代码中,我们首先定义了一个名为splitArray的函数,该函数接收一个一维数组arr作为参数,返回一个二维数组result。接下来,我们使用for循环遍历一维数组,每5个元素为一组,定义一个名为row的数组用于保存每一行的元素。在每一组中,我们使用另一个for循环遍历5个元素,如果当前元素的索引超过了一维数组的长度,则跳过该元素。最后,我们将每一行的元素添加到二维数组result中,并返回结果。

喜欢