浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【javascript】map関数とreduce関数を組み合わせて値の合計を返す

今回は、既存の配列を使って新しく配列を生成するmap関数と指定した数値を加算して返すreduce

関数を使って、配列の中にある数全てを加算して返す方法について書いていきます。

下のコードのような各列に値があってそれを足していくのが今回の目的なのですが

</pre>
var person = [
{
name: 'john',
num: 3,
},
{
name: 'toru',
num: 3,
},
{
name: 'mario',
num: 3,
}
]
<pre>

 

このままforで回してarr = person[i][num];としてlet new_arr += arrと順番に入れようとしてもundefinedになってしまい

数値を足すことができません。

これを実現する方法の一つにmap関数とreduce関数を組み合わせて使う方法があります。

使い方はとてもシンプルで、以下のように三行で実現することができます。↓

</pre>
let arr = person.map(obj => obj['num']);
console.log(arr);
//[3,3,3]
const reducer = (accumulator, currentValue) => accumulator + currentValue;
let i = arr.reduce(reducer);
console.log(i);
//9
<pre>

 

①まず、map関数で数値のみを抜き出す。

②reduceの引数に必要なaccumulator(現在値)とcurrentValue(現在扱っている〇番目の値)を

関数とし変数に代入します。

③最後にreduceを使って順番に加算。これで終了です。

 

javascriptの優秀なライブラリのおかげで可読性を保ちながら簡単に目的を果たせました。

感謝感激 m(_ _)m

  • この記事いいね! (0)