「ロナえる」の夫です。
配列内の同一要素をカウントしたいことありますよね。
例えば、アンケートで取ったデータの集計するとき。
次のような表から、
年齢 | 性別 | インドア派/アウトドア派 |
---|---|---|
30代 | 男 | インドア派 |
20代 | 男 | アウトドア派 |
30代 | 女 | インドア派 |
40代 | 女 | アウトドア派 |
40代 | 女 | アウトドア派 |
年齢 20代:1人、30代:2人、40代:2人
性別 男:1人、女:3人
インドア派:2人、アウトドア派:3人
みたいな集計を簡単に計算できます。
今回は、reduce
を使って選択肢のカウントを行います。
reduceとは?
reduce
は、配列の要素を使ったfor文で値を引き回した処理をしたい時に便利なメソッドです。
詳しくはこちらで、reduce
をもう少し詳しく記載してます。
-
-
【Javascript】Array(配列)の使い方をまとめました
続きを見る
配列内の同一要素を集計(カウント)する
冒頭で出てきた表で、年齢を集計してみましょう。
まずはfor文で記述してみます。
sum[array[i]["年齢"]]++;
こういうところが若干読みにくく感じます。
これをreduce
を使って書くと、
こうすると、少しスッキリした気がします!
また、今回は年齢をハードコードで記載していますが、もうひと工夫をすると集計ターゲットを可変にすることができます。
上記コードのように、reduce
に入力する関数を少し拡張してあげることによって、全ての項目を簡単かつ簡潔に集計することができました。
まとめ:reduceを利用してちゃちゃっと集計してみましょう
今回は、reduce
を利用して簡単に集計をしてみました。
実際には、reduce
の処理は初めて利用する人にはとっつきづらいと思います。
ただ、集計だけでなく、合算や配列の結合など、reduce
の利用用途は多岐に渡り、強力なメソッドです。
ぜひマスターしていきましょう!