把一个数组按照特定长度分割成新的数组
- 首先,熟悉一下 js中数组分割是方法:
slice()方法
var arr=[1,2,2,3,4,5,5,6,6,7,1];
arr.slice(0,3); // [1, 2, 2]
arr.slice(0,6); // [1, 2, 2, 3, 4, 5]
slice(index,length);
slice()方法有两个入参,index:即要分割的初始位置的索引,必填;length:要分割部分的长度,选填,如果不填,将默认是从初始位置到数组结束。
- 利用slice()来平均分割一个数组,并将分割后的数组组合成一个新的数组,具体方法如下:
var arr=[1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5]; // 定义一个数组
/** 定义一个函数 **/
getNewArray=(arr, size)=>{ // size=5,要分割的长度
const arrNum = Math.ceil(arr.length/size, 10); // Math.ceil()向上取整的方法,用来计算拆分后数组的长度
let index = 0; // 定义初始索引
let resIndex = 0; // 用来保存每次拆分的长度
const result = [];
while(index< arrNum){
result[index]= arr.slice(resIndex,size+resIndex);
resIndex += size;
index++;
}
return result;
}
/* result =
0: (5) [1, 1, 1, 1, 1]
1: (5) [2, 2, 2, 2, 2]
2: (5) [3, 3, 3, 3, 3]
3: (5) [4, 4, 4, 4, 4]
4: (4) [5, 5, 5, 5]
*/
- 总结: result被拆分成了一个新的数组,且每个元素都是一个数组