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

时间:2016-11-18 16:41:33

标签: 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;
}

我想将此数组拆分为给定大小的块。

chunkArrayInGroups(["a", "b", "c", "d"], 2)  

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

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

1 个答案:

答案 0 :(得分:15)

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

array.slice(from, to); // not array.slice(from, length)

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));