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;
},