web前端学习

js一维数组转换成二维数组函数

2018-09-05  本文已影响811人  Yuhoo

写在前面
有时候我们获取一个一维数组,但是需要对其进行分页处理,也就是转换成二维数组。下面我们写一个函数来实现。

使用技术

1、Math.ceil()返回大于或等于一个给定数字的最小整数
2、Array.push()向数组的末尾添加一个或多个元素

实现函数代码

参数:

num 每个子数组里的元素个数
arr 需要转换的一维数组

返回值:

二维数组

具体函数代码
function arrTrans(num, arr) { // 一维数组转换为二维数组
  let arrs = []; // 声明数组
  for (let i = 0; i < Math.ceil(arr.length / num); i++) {
    arrs[i] = []; // 声明该数组第一个元素为一个数组
    for (let j = 0; j < num && j + num * i < arr.length; j++) {
      arrs[i].push(arr[j + num * i]);
    }
  }
  return arrs;
}

优化之后为

function arrTrans(num, arr) { // 一维数组转换为二维数组
  const iconsArr = []; // 声明数组
  arr.forEach((item, index) => {
    const page = Math.floor(index / num); // 计算该元素为第几个素组内
    if (!iconsArr[page]) { // 判断是否存在
      iconsArr[page] = [];
    }
    iconsArr[page].push(item);
  });
  return iconsArr;
},
上一篇 下一篇

猜你喜欢

热点阅读