要求:

把一个数组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));

两种方法返回的结果

使用场景:

比如将一些东西按照列表的方式排列等等,比如小米商城的列表导航等等,如图:

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐