配列から任意の数ずつ要素を取り出してイテレートする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
回だけ実行されます。
コメントを送る
コメントはブログオーナーのみ閲覧できます