JavaScriptの配列 : 減らす機能を理解します

構文

arr.reduce(callbackFunction, [initialValue])

何を減らすん?

低減アレイをループ関数であります.

オペレーションは、コールバック関数を介してアレイ上で行うことができます.

アレイ上の操作の終わりに, 返します単一の値を下げます

使用することができます削減, 例えば, ショッピングカートを合計します

例

  ARR =ましょう [1,2,3,4,5];
  arr.reduce( (アキュムレータ, 現在の価値, currentIndex, アレイ) => { 
      //いくつかの操作;
      何かを返します;
  });

 

コールバック関数

コールバック関数は、配列の各要素のために呼び出され, に渡します 4 reduce関数によって渡される引数.

これら 4 引数は、弊社のコールバック関数の中で使用することができます.

4つの引数を取り

  1. アキュムレータ – 供給された場合、最初のループまたは初期値に配列の最初の要素. 前のループのその後の戻り値.
  2. 現在の価値 – 配列内の現在の要素. 配列すなわち2番目の要素から始まります. ARR[1], 初期値引数が渡されていない場合. 初期値引数が渡された場合、現在の値が配列arrにおける第一の要素から始まり[0].
  3. currentIndex – 現在の要素のインデックス.
  4. アレイ – 全体配列.

実施例

ARR =ましょう [1,2,3,4,5];

arr.reduce(
  (アキュムレータ, 現在の価値, currentIndex, アレイ) => {
    console.log(`アキュムレータ (第一のループで, アキュムレータはARRです[0], それは前のループの戻り値であります): ${アキュムレータ}`);
    console.log(`currentValueは (配列をループ, ARRで始まります[1]): ${現在の価値}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`配列: ${アレイ}`);
    console.log('---');
    リターンアキュムレータ + 現在の価値;
  }
);

出力

アキュムレータ (第一のループで, アキュムレータはARRです[0], それは前のループの戻り値であります): 1
現在の価値 (配列をループ, ARRで始まります[1]): 2
currentIndex: 1
アレイ: 1,2,3,4,5
---
アキュムレータ (第一のループで, アキュムレータはARRです[0], それは前のループの戻り値であります): 3
現在の価値 (配列をループ, ARRで始まります[1]): 3
currentIndex: 2
アレイ: 1,2,3,4,5
---
アキュムレータ (第一のループで, アキュムレータはARRです[0], それは前のループの戻り値であります): 6
現在の価値 (配列をループ, ARRで始まります[1]): 4
currentIndex: 3
アレイ: 1,2,3,4,5
---
アキュムレータ (第一のループで, アキュムレータはARRです[0], それは前のループの戻り値であります): 10
現在の価値 (配列をループ, ARRで始まります[1]): 5
currentIndex: 4
アレイ: 1,2,3,4,5
---

 

初期値を提供します

二番目のパラメータを指定します (初期値) 軽減機能ではinitialValueが最初のループ上のアキュムレータ引数として渡されることになります.

第1ループ上の電流値は、現在配列の最初の要素から始まることに注意してください

実施例

  ARR =ましょう [1,2,3,4,5];

  arr.reduce(
  (アキュムレータ, 現在の価値, currentIndex, アレイ) => {
    console.log(`アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): ${アキュムレータ}`);
    console.log(`currentValueは (配列をループ, ARRで始まります[0]): ${現在の価値}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`配列: ${アレイ}`);
    console.log('---');
    リターンアキュムレータ + 現在の価値;
  }, 0
);

出力

アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): 0
現在の価値 (配列をループ, ARRで始まります[0]): 1
currentIndex: 0
アレイ: 1,2,3,4,5
---
アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): 1
現在の価値 (配列をループ, ARRで始まります[0]): 2
currentIndex: 1
アレイ: 1,2,3,4,5
---
アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): 3
現在の価値 (配列をループ, ARRで始まります[0]): 3
currentIndex: 2
アレイ: 1,2,3,4,5
---
アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): 6
現在の価値 (配列をループ, ARRで始まります[0]): 4
currentIndex: 3
アレイ: 1,2,3,4,5
---
アキュムレータ ( 第一のループで, これは初期値であり、, 前のループの後、返された値): 10
現在の価値 (配列をループ, ARRで始まります[0]): 5
currentIndex: 4
アレイ: 1,2,3,4,5
---