JavaScriptの配列 : 減らす機能を理解します
構文
arr.reduce(callbackFunction, [initialValue])
何を減らすん?
低減アレイをループ関数であります.
オペレーションは、コールバック関数を介してアレイ上で行うことができます.
アレイ上の操作の終わりに, 返します単一の値を下げます
使用することができます削減, 例えば, ショッピングカートを合計します
例
ARR =ましょう [1,2,3,4,5];
arr.reduce( (アキュムレータ, 現在の価値, currentIndex, アレイ) => {
//いくつかの操作;
何かを返します;
});
コールバック関数
コールバック関数は、配列の各要素のために呼び出され, に渡します 4 reduce関数によって渡される引数.
これら 4 引数は、弊社のコールバック関数の中で使用することができます.
4つの引数を取り
- アキュムレータ – 供給された場合、最初のループまたは初期値に配列の最初の要素. 前のループのその後の戻り値.
- 現在の価値 – 配列内の現在の要素. 配列すなわち2番目の要素から始まります. ARR[1], 初期値引数が渡されていない場合. 初期値引数が渡された場合、現在の値が配列arrにおける第一の要素から始まり[0].
- currentIndex – 現在の要素のインデックス.
- アレイ – 全体配列.
実施例
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 ---
