要求:
把一个数组arr按照制定的数组大小newArrLength分割成若干个数组块。
样本:
changeArrGroup([1,2,3,4,5,6,7,8,9],3) 返回 [[1,2,3],[4,5,6],[7,8,9]]
changeArrGroup([1,2,3,4,5,6,7],2) 返回[[1,2],[3,4],[5,6],[7]]
算法:提供两种
方法一
function changeArrGroup (arr, newArrLength) {
let changeIndex = 0;
let secondArr = [];
while (changeIndex < arr.length) {
secondArr.push(arr.slice(changeIndex, changeIndex+=newArrLength))
}
return secondArr;
}
console.log(changeArrGroup([1,2,3,4,5,6,7,8,9],3));
方法二
function changeArrGroup (arr, newArrLength) {
let secondArr = [];
for (let i = 0; i < arr.length; i+=newArrLength) {
let tempArr = [];
for (let j = 0; j < newArrLength && i + j < arr.length; j++) {
tempArr.push(arr[i + j])
}
secondArr.push(tempArr);
}
return secondArr;
}
console.log(changeArrGroup([1,2,3,4,5,6,7,8,9],3));
两种方法返回的结果
使用场景:
比如将一些东西按照列表的方式排列等等,比如小米商城的列表导航等等,如图: