avatar

目录
一维数组构建指定个数的二位数组

前言

最近,在写着小程序,对数据操作比较频繁,后端返回的数据对于我构建一个 swiper 不是那么的理想,所以自己就写了一个方法,用于构建一个二维数组来构建单个 swiper-item 多图的轮播

javascript
/**
* 一维数组生成以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;
}

/**
* 返回一个根据subArrayNum的二维数组
* @param {Array} arr => 一维数组
* @param {Number} subArrayNum => 每组元素的个数
*/
function chunk(arr, subArrayNum) {
var result = [];
for (var i = 0; i < arr.length; i += subArrayNum) {
result.push(arr.slice(i, i + subArrayNum));
}
return result;
}

测试我们写的方法:

javascript
var arr = [1, 2, 3, 4, 5, 6];
getMatrix(arr, 2); // [[1,2],[3,4],[5,6]]
chunk(arr, 2); // [[1,2],[3,4],[5,6]]
文章作者: gating
文章链接: https://gatings.cn/2018-01-24/%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84%E6%9E%84%E5%BB%BA%E4%BA%8C%E4%BD%8D%E6%95%B0%E7%BB%84/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 磨蹭先生
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论