1.问题描述

编写一个函数,把一个数组arr按照指定的数组大小size分割成若干个数组块。

例如:
chunk([1,2,3,4],2)=[[1,2],[3,4]];

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];

2.分析

1.遍历传入数组,再根据传入目标值进行遍历数组,并且把遍历数组值传入一个数组块中
2.如果剩余的数不够一个数组块的大,就作为单独的一个数组块
3.将所有数组块传入结果数组中

3.用到的方法

1.String.prototype.push()

4.代码如下

function chunk(arr, size) {
  // Break it up.
  var len = arr.length;
  var resultArr = [];
  for(var i=0;i<len;){
    //数组块
    var groupArr = [];
    for(var j=0;j<size;j++){
      groupArr.push(arr[i]);
      i++;
    }
    resultArr.push(groupArr);
    //如果剩余的数不够一个数组块的大小
    if(len - i < size){
      size = len - i;
    }
  }
  return resultArr;
  
}

chunk([0, 1, 2, 3, 4, 5], 4);


Last modification:May 10th, 2020 at 12:40 pm
如果觉得我的文章对你有用,请随意赞赏