フィルタリングとリデュース
JavaScript のArray.prototype.filter()とArray.prototype.reduce()メソッドは、配列操作の強力なツールであり、データ処理を効率的かつ簡潔にすることができます。これらのメソッドは、それぞれ配列内の要素をフィルタリングしたり、配列要素の値を集計したりするために使用されます。
フィルタリング
filter()メソッドは、提供された関数によって実装されるテストに合格するすべての要素を持つ新しい配列を作成します。元の配列は変更されず、新しい配列が返されます。
構文:
let result = array.filter(function (element, index, array) {
// テスト条件
return true; // または false
});
element:配列内で現在処理されている要素。
index(省略可能):現在の要素のインデックス。
array(省略可能):filterが呼び出される配列。
たとえば、10 より大きい数をフィルタリングする場合。
let numbers = [5, 12, 8, 130, 44];
let filtered = numbers.filter(function (number) {
return number > 10;
});
console.log(filtered); // 出力:[12, 130, 44]
リデュース
reduce()メソッドは、配列の各要素に対してリデューサ関数(あなたが提供する)を実行し、単一の出力値を生成します。
構文:
let result = array.reduce(function (
accumulator,
currentValue,
currentIndex,
array
) {
// 集計結果を返す
return accumulator + currentValue;
}, initialValue);
accumulator:コールバックの返却値を集計します。これは、コールバックの前回の呼び出しで以前に返された集計値であり、指定されている場合はinitialValueです。
currentValue:配列内で現在処理されている要素。
currentIndex(省略可能):現在処理されている要素のインデックス。
array(省略可能):reduceが呼び出された配列。
たとえば、配列内のすべての数の合計を計算する場合。
let numbers = [5, 12, 8, 130, 44];
let total = numbers.reduce(function (accumulator, number) {
return accumulator + number;
}, 0);
console.log(total); // 出力:199
この 2 つのメソッドを使って、次のステップは収入と支出の合計を計算することです。