编写一个函数,将数组(第一个参数)拆分为大小的长度(第二个参数),并将它们作为多维数组返回

Ros*_*ose 0 javascript

我正在处理一个javascript问题,要求我:

编写一个函数,将数组(第一个参数)拆分为大小(第二个参数)的长度,并将它们作为多维数组返回.

例如,输入

chunk([0, 1, 2, 3, 4, 5], 2)
Run Code Online (Sandbox Code Playgroud)

应该返回'chunked arrays':[[0,1],[2,3],[4,5]]

我可以让它适用于大多数示例,但当有超过2个块时,它会切换顺序,我不知道为什么.这是我写的代码:

function chunk(arr, size) {
  var newArray = [],
      i, temp = arr;
  for (i = 0;i<= arr.length-size;i+=size){
    newArray.push(arr.slice(i,i+size));
    temp.splice(i,size);
  }
  newArray.push(temp);
  return newArray;
}
chunk(['a', 'b', 'c', 'd'], 2);
Run Code Online (Sandbox Code Playgroud)

u_m*_*der 7

另一个版本:

function chunk(arr, size) {
    var result = [];
    while (arr.length > size) {
        result.push(arr.splice(0, size))
    }
    if (arr.length)
        result.push(arr);

    return result;
}
Run Code Online (Sandbox Code Playgroud)