1. ホーム
  2. javascript

[解決済み] JSで配列の平均を求める【重複】について

2022-03-06 21:19:13

質問

スタックオーバーフローで配列の平均を求める簡単な質問と回答が見つからなかったのですが、どうすればいいですか?

これは私が持っている配列です

const grades = [80, 77, 88, 95, 68];

私は最初、この問題に対する答えはこんなものだろうと考えていました。

let avg = (grades / grades.length) * grades.length
console.log(avg)

しかし、これでは出力がNaNになってしまいます。

そこで、次にこれを試してみた。

for (let grade of grades)
    avg = (grade / grades.length) * grades.length
console.log(avg)

これによって68という出力が得られました。(なぜかは分かりませんが)。

それで、これで2つの質問があります。1. なぜ私の出力は68だったのか、そして2. だれか配列の平均を実際に求めるのを手伝ってくれませんか?

どのように解決するのですか?

すべての要素を足して、要素の数で割ることで平均を算出します。

var total = 0;
for(var i = 0; i < grades.length; i++) {
    total += grades[i];
}
var avg = total / grades.length;

68という結果が出たのは、ループの中で平均値を上書きし続けたため、最終的な値は最後に計算した結果になるからです。また、割り算とgrade.lengthによる掛け算は互いに相殺されます。