Dividir una matriz en trozos de un tamaño dado

He escrito una función que toma dos parámetros: (1) una matriz, (2) el tamaño del fragmento.

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

Quiero dividir esta matriz en trozos del tamaño dado.

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

debe devolver: [["a", "b"], ["c", "d"]] .

Vuelvo: [["a", "b"], []]

Usted malentendió lo que significan los parámetros de slice . El segundo es el índice hasta el cual (no incluido) desea obtener el subarreglo. No es una longitud.

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