[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

この記事が気に入ったらサポートをしてみませんか?