この記事は最終更新日から1年以上経過しています。
JavaScriptにもPHPのarray_sum
みたいな関数があったらな~とずっと思っていました。
ふとまた調べているとそれに近しい感じに出来るメソッドがあったのでご紹介します。
とりあえず配列を用意
1 | const nums = [12, 23, 35, 41, 56, 64, 77]; |
関数を使った普通のやり方
1 | const sum = function (nums) { |
3 | for (let i = 0, len = nums.length; i < len; i++) total += nums[i]; |
7 | const total = sum(nums); |
ちなみに出力結果はこの通り
そして調べていて発見したのがArray.reduce
メソッドです。
書式:配列名.reduce( コールバック関数(結果の値, 要素の値), [初期値] )
初期値は省略可です。
実際に使ってみましょう。
1 | const sum = nums.reduce( function (sum, num){ |
結構簡単ですね。コードも短くなります。
でも、もっと短くしたいのでアロー関数を使ってみましょう。
1 | const sum = nums.reduce((sum, num) => { |
う~ん、もっと短く…
1 | const sum = nums.reduce((sum, num) => sum + num, 0); |
1行になりました。
皆さんも是非使ってみてください。