JavaScript将一维数组转化为二维数组
遇到的问题:
后端返回的是一组一维数组,但是需要展示的格式是二维数组。
常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上。
例:[1,2,3,4,5,6,7,8,9,10] => [[1,2,3], [4,5,6], [7,8,9], [10]]
解决方法及思路:
/** 调用 */
let list = [1,2,3,4,5,6,7,8,9,10]
let brr = setTwoDimensionalArray(list)
console.log(brr)
// 转化函数
function setTwoDimensionalArray (list) {
const listResult = []; // 最终返回的二维数组
for (let i = 0; i < Math.ceil((list.length / 3)); i++) {
listResult[i] = [];
for (let j = 0; j < 3; j++) {
// 如果是最后一个板块
if (i === (Math.ceil((list.length / 3)) - 1)) {
if (Math.ceil((list.length % 3)) !== 0) {
// 只有最后一个板块的数据在余数以内的才赋值
if (j < Math.ceil((list.length % 3))) {
listResult[i][j] = list[i * 3 + j];
}
} else {
// 如果刚好整整一个板块,则全部附上值
listResult[i][j] = list[i * 3 + j];
}
} else {
listResult[i][j] = list[i * 3 + j];
}
}
}
return listResult;
}
调用后的打印结果: