最近,在写着小程序,对数据操作比较频繁,后端返回的数据对于我构建一个swiper不是那么的理想,所以自己就写了一个方法,用于构建一个二维数组来构建单个swiper-item多图的轮播
**********************************我是华丽的分割线**********
*******************************************
/**
* 一维数组生成以subArrayNum的二维数组
* @param {Array} arr
* @param {Number} subArrayNum
*/
function getMatrix(arr, subArrayNum) {
// 定义一个数组,长度为原数组的总长度除以subArrayNum向上取整
var res = new Array(Math.ceil(arr.length / subArrayNum));
// 遍历该数组
for (let i = 0; i < res.length; i++) {
// 令数组每一个值都为空数组,即生成二维数组
res[i] = new Array();
// 为二维数组数据设置为空字符串
for (let j = 0; j < i % subArrayNum; j++) {
res[i][j] = '';
}
}
// 给二维数组添加数据
for (let i = 0; i < arr.length; i++) {
res[parseInt(i / subArrayNum)][i % subArrayNum] = arr[i];
}
return res;
}
测试我们写的方法:
var arr = [1, 2, 3, 4, 5, 6];
getMatrix(arr, 2);// [[1,2],[3,4],[5,6]]