[javascript] 優秀な配列の分割
こんな配列があったとします。
[1,2,3,4,5,6,7,8,9]
これを↓の配列のように3つの要素ごとに分割させたい。
[[1,2,3],[4,5,6],[7,8,9]]
こういうことしたいケースって結構ありますよね?
自分で実装しようと思ったけど、コードが若干汚かったので、きれいな書き方を探しました。
かなり優秀な書き方で分割させるコードがあったので備忘かねて記載
結論↓のコード
function partition(array, n) {
return array.length ? [array.splice(0, n)].concat(partition(array, n)) : [];
}
const arrayAll = [1, 2, 3, 4, 5, 6, 7, 8, 9]
const chunked = partition(arrayAll, 3)
Logger.log(chunked)
// => [[1,2,3],[4,5,6],[7,8,9]]
このpartitonという関数を呼びだしてあげればいいわけですが、
注目したいのはこのpartition関数の中身ですね。
1行で完結に表現できています。
自己再帰的な記述によって実現していますね。
これは頭のいい人しか思いつかないですわ。
参照
https://stackoverflow.com/questions/11345296/partitioning-in-javascript
この記事が気に入ったらサポートをしてみませんか?