配列の平均値計算エラー
配列要素の算術平均を求めることに関連する エラーを検討しましょう。例として、次のような 配列が与えられているとします:
let arr = [1, 2, 3, 4, 5];
要素の平均を求めるには、それらの合計を求め、 要素数で割る必要があります。あるプログラマーは この問題を次のようにすでに解決しています:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
この解決策の問題点を考えてみましょう。 技術的にはコードは正しく動作し、正しい 答えを出します。数学的には、合計全体を 個数で割ることも、各加数を個数で割ることも どちらも正しいからです。
しかし、別の問題が生じます。それは、 除算を配列の要素数と同じ回数だけ 実行することです。結局、最終的に見つかった 合計を一度だけ割ることができるのに、 多くの余分な操作をしていることになります。
コードを最適化してみましょう:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);