LoginSignup
0
0

More than 1 year has passed since last update.

【Javascript】reduceメソッドー学習ノート

Posted at

初めに

javascriptのreduceメソッドについて学習した内容のoutput用記事です。

※内容に間違いなどがある場合はご指摘をよろしくお願いします。
※こちらの記事はあくまでも個人で学習した内容のoutputとしての記事になります。

reduceメソッド

高階関数の一つ。引数として関数を取り、対象の配列の要素をその関数の処理した結果に処理を重ね凝縮した一つの値を出力する。

使ってみる

filterやmapとは違ってcallback関数の引数は「累積値,現在値,インデックス,配列」順になります。また、reduceメソッド自体も第2引数として初期値を設定することができます(第一引数はcallback関数です)。

const changes = [100, 400, -300, 120, -50, -330, 1400, 500];

const accChanges = changes.reduce(function (acc, value, i, arr) {
  return acc + value;
}, 0);    //初期値を0にする

関数の結果は配列の合計値になります。

1840

indexは0番から始まり、累計は次のように表示することができます。

const accChanges = changes.reduce(function (acc, value, i, arr) {
  console.log(`累計${i}: ${acc}`)   //追記
  return acc + value;
}, 0);

初期値を0にしたため、0番目の値は0になっていることが分かります。

累計0: 0
累計1: 100
累計2: 500
累計3: 200
累計4: 320
累計5: 270
累計6: -60
累計7: 1340

これはfor of文を使えば次のように書くことができます。

let total = 0;
for (const change of changes) total += change;
console.log(total);
//1840

配列の中から最小値を求める時にもreduceメソッドを使うことができます。

const min = changes.reduce(function (acc, value) {
  if (acc < value) {
    return acc;
  } else {
    return value;
  }
}, changes[0]);

console.log(min);
//-330

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0