因项目需要,现有一维数组需要重新按每10个元素为一个数组整理成二维数组.
例如,把arr1重新整理为arr2
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var arr2 = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
我目前想到的做法如下:
let arr = [];
let arr2 = [];
for(let i = 0,len = arr1.length; i < len; i++){
arr.push(arr1[i]);
if(i && i % 9 == 0){
arr2.push(arr);
arr = [];
continue;
}
if(i == len - 1) arr2.push(arr);
}
不知是否有更为优雅的写法和思路?
两种方式:
let arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
let arr2 = [];
for(let i = 0; i < Math.ceil(arr1.length / 10); i++) {
arr2.push(arr1.slice(i * 10, i * 10 + 10));
}
let arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
let arr2 = [];
while(arr1.length > 0) {
arr2.push(arr1.splice(0, 10));
}