将数组拆分为给定大小的块

Kōd*_*-ka 6 javascript

我编写了一个函数,它接受两个参数:(1)一个数组,(2)块的大小.

function chunkArrayInGroups(arr, size) {

  var myArray = [];

  for(var i = 0; i < arr.length; i += size) {
    myArray.push(arr.slice(i,size));
  }

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

我想将这个数组拆分成给定大小的块.

chunkArrayInGroups(["a", "b", "c", "d"], 2)  
Run Code Online (Sandbox Code Playgroud)

应该回来:[["a", "b"], ["c", "d"]].

我回来了: [["a", "b"], []]

Ori*_*iol 19

你误解了slice参数的含义.第二个是你希望获得子阵列的索引(不包括在内).这不是一个长度.

array.slice(from, to); // not array.slice(from, length)
Run Code Online (Sandbox Code Playgroud)

function chunkArrayInGroups(arr, size) {
  var myArray = [];
  for(var i = 0; i < arr.length; i += size) {
    myArray.push(arr.slice(i, i+size));
  }
  return myArray;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));
Run Code Online (Sandbox Code Playgroud)