Site cover image
Post title iconJavaScriptでRubyのeach_consを実現する

配列から任意の数ずつ要素を取り出してイテレートするRubyのeach_consをJavaScriptで実現する方法です。

const eachCons = (arr, n) => {
  return Array.from({ length: arr.length - n + 1 }, (_, i) => arr.slice(i, i + n))
}
const digits = [1, 2, 3, 4, 5]
eachCons(digits, 2) // => [[1, 2], [2, 3], [3, 4], [4, 5]]

Array.from() の第1引数にはイテレーション可能なオブジェクトもしくは length プロパティを持った配列風オブジェクトを渡すことができます。第2引数にはmap関数を渡します。生成される配列を構成する各要素の値は必ずこのmap関数で処理されます。この例のように length プロパティだけを持ったオブジェクトを渡した場合、各要素は undefined となったまま length 回だけ実行されます。

Thank you!
Thank you!
URLをコピーしました

コメントを送る

コメントはブログオーナーのみ閲覧できます