let警察に捕まったときに教わったreduceの使い方

Tweet

こんな雰囲気のコードでPRを出したところ、let警察に逮捕されました。
※ 実際のコードとは異なります

const numbers = [...Array(100).keys()]

let sum = 0, count = 0
numbers.forEach(number => {
    sum += number
    console.log('sum', sum)
    count++
})
console.log('sum', sum) // sum 4950
console.log('count', count) // count 100

let警察が教えてくれた書き方

const numbers = [...Array(100).keys()]
const [sum, count] = numbers.reduce(([sum, count], number) => {
    return [sum + number, ++count]
}, [0, 0])
console.log('sum', sum) // sum 4950
console.log('count', count) // count 100

レビューコメントを見た僕「まじ?」

配列の分割代入を利用してこんな書き方ができるとは知らず、完全にアハ体験でした。
letを撲滅したいそこのあなた、こんな書き方はいかがでしょう?