chunk
Lodashとかであるやつです。
第1引数の配列を第2引数の数の要素数の配列に分割します。
constchunk=(array,n)=>array.reduce((a,c,i)=>i%n==0?[...a,[c]]:[...a.slice(0,-1),[...a[a.length-1],c]],[]);
実行結果はこんな感じ
constarray=Array.from({length:7},(v,k)=>k);chunk(array,2);// [ [ 0, 1 ], [ 2, 3 ], [ 4, 5 ], [ 6 ] ]
divide
自分が欲しかったやつはこれでした。
第1引数の配列を第2引数の数の配列に分割します。
constdivide=(array,n)=>{consttbl=newArray(n);for(lety=0;y<n;y++){tbl[y]=newArray();}array.forEach((a,i)=>{tbl[(i+1)%n].push(a);});returntbl;};
決められたスレッドを利用して並列化したかったのでこんなのが必要になりました。
実行結果はこんな感じ
constarray=Array.from({length:7},(v,k)=>k);divide(array,2);// [ [ 1, 3, 5 ], [ 0, 2, 4, 6 ] ]
ぐぐってもchunk
みたいな処理しかでてこなかった。もっといい書き方ありそう。