Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8833

Arrayの分割2種

$
0
0

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みたいな処理しかでてこなかった。もっといい書き方ありそう。


Viewing all articles
Browse latest Browse all 8833

Trending Articles