SOLUTION - 解決策
メソッドチェーンより単一ループの方がメモリ効率と速度で優れる
メソッドチェーンは中間配列を生成するため、単一ループで処理する方が効率的です。
前提
- filter、map、reduceなど複数の操作を連続して行う場合
- 中間配列の生成を避けたい場合
- メモリ使用量を削減したい場合
実際のコード
// 遅い(3回ループ)
const result = arr
.filter(x => x > 0)
.map(x => x * 2)
.reduce((sum, x) => sum + x, 0);
// 速い(1回ループ)
let result = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] > 0) {
result += arr[i] * 2;
}
}