// ---行き方
//配列とチャンクサイズを考えると、多くのサブアレイにアレイを分割し
、各サブアレイが長さサイズのものである//
// ---例
//チャンク([1、2、3、4] 2) - > [[1、2]、[3、4]
//チャンク([1、2、3、4、5]、2) - > [[1、2]、[3、4 ]、[5]]
//チャンク([1、2、3、4、5、6、7、8]、3) - > [[1、2、3]、[4、5、6]、 [7、8]
//チャンク([1、2、3、4、5]、4) - > [[1、2、3、4]、[5]]
//チャンク([1、2 、3、4、5]、10) - > [[1、2、3、4、5]
関数チャンク(配列サイズ){ 結果を聞かせ = []; 一時を聞かせて = []; constの LEN = Array.lengthと。 用(; iがLEN <I ++は、I = 0せ{) MODせ = Iの%の大きさと、 もし(MOD === 0 ){ 場合(temp.length == 0] ){ 結果 = [...結果、TEMP]。 } TEMP = []; } TEMP [MOD] = 配列[i]は、 } 結果 = [...結果、TEMP]。 戻り値の結果; }
方法2:
関数チャンク(配列サイズ){ せチャンク = []; 聞かせてインデックス = 0 ; 一方、(指数< Array.lengthと){ chunked.push(array.slice(インデックス、インデックス + サイズ))。 インデックス + = サイズ; } 戻りチャンク。 }
テスト:
CONSTチャンクは=( "./インデックス"を必要とします)。 試験( "機能チャンクが存在する"、()=> { 期待(typeof演算チャンク).toEqual( "機能" ); }); テスト(()=> "チャンクがチャンクサイズ2を有する10個の要素のアレイ分割" { CONST ARR = [1、2、3、4、5、6、7、8、9、10 ]、 CONSTはチャンク=チャンクを(ARR、2 ); 期待(チャンク).toEqual([ 1、2]、[3、4]、[5、6]、[7]、[8]、[9、10 ]]); }); 試験( "チャンクはチャンクサイズ1を有する3個の素子のアレイを分割"、()=> { CONST ARR = [1、2、3 ]、 CONSTチャンク=チャンク(ARR、1 )。 期待(チャンク).toEqual([ 1]、[2]、[3 ])。 }); 試験( "チャンクはチャンクサイズ3で5個の素子のアレイを分割"、()=> { CONST ARR = [1、2、3、4、5 ]、 CONSTはチャンク=チャンクを(ARR、3 ); (チャンク期待) .toEqual([[ 1、2、3]、[4、5 ]); }); 試験( "チャンクは、チャンクサイズ5と13個の素子のアレイを分割"()=> { CONST ARR = [1、2、3、4、5、6、7、8、9、10、11、12、13 ]; constがチャンク=チャンクを(ARR、5 ); 期待(チャンク).toEqual([1、2、3、4、5]、[6、7、8、9、10]、[11、12、13 ])。 });