2016-11-18 9 views
1

私は、(1)配列、(2)チャンクのサイズの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"], []]

答えて

5

あなたはsliceパラメータの意味を誤解。 2番目のインデックスは、サブアレイを取得するまでのインデックスです(含まれていません)。それは長さではありません。

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

関連する問題