お疲れ様です!
この間、Node.jsで「配列の要素を指定の個数に分割する」処理を書く機会がありました。
その際はsubstringを使って毎回取り出す範囲を指定する処理にしていたのですが、先輩から別の方法を教えていただきました。
有名な方法なのかと思いますが、私にとっては目から鱗だったので、今回はそのコードを紹介します。
目次
コードの紹介
早速ですがコードは以下の通りです。
// 元となる配列
const numberList = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30];
// いくつずつに分けるか
const divideLength = 7;
for(let i = 0; i < numberList.length; i += divideLength){
// 指定した個数ずつに分割する
let splitNumberList = numberList.slice(i, i + divideLength);
// カンマで接続し、文字列にする
let numberStr = splitNumberList.join();
console.log('numberStr =', numberStr);
}
出力結果は以下になります。
numberStr = 1,2,3,4,5,6,7
numberStr = 8,9,10,11,12,13,14
numberStr = 15,16,17,18,19,20,21
numberStr = 22,23,24,25,26,27,28
numberStr = 29,30
ちゃんと7個ずつに分割されていますね。
最後は7個未満でしたので「29,30」と余った分だけが出力されています。
終わりに
本日はコードの紹介でした。
プログラミングが得意な方というのは、目的の処理を実装する手段を常に複数持っており、その時々に合わせて柔軟に対応している印象があります。素敵ですね。
私も自分の引き出しを増やしていけるよう精進しようと思いました!