では「偏差の二乗を計算して返す関数」を作ってみましょう。
これは 分散や標準偏差 を求めるための第一歩になります。
目標
- 配列の平均値を求める
- 各要素の「偏差(要素 − 平均値)」を計算する
- その偏差を二乗して新しい配列に入れる
✅ 模範解答(for文バージョン)
function getSquaredDeviations(arr) {
if (arr.length === 0) return [];
// 平均値を計算
let total = 0;
for (let i = 0; i < arr.length; i++) {
total += arr[i];
}
const average = total / arr.length;
// 偏差の二乗を計算
const squaredDevs = [];
for (let i = 0; i < arr.length; i++) {
const deviation = arr[i] - average;
squaredDevs.push(deviation ** 2); // 偏差の二乗
}
return squaredDevs;
}
// 実行例
console.log(getSquaredDeviations([3, 7, 2, 9, 5]));
// 平均は 5.2 → [4.84, 3.24, 10.24, 14.44, 0.04]
JavaScript✅ 模範解答(for…ofバージョン)
function getSquaredDeviations(arr) {
if (arr.length === 0) return [];
const total = arr.reduce((sum, num) => sum + num, 0);
const average = total / arr.length;
const squaredDevs = [];
for (const num of arr) {
const deviation = num - average;
squaredDevs.push(deviation ** 2);
}
return squaredDevs;
}
console.log(getSquaredDeviations([10, 20, 30, 40]));
// 平均は25 → [225, 25, 25, 225]
JavaScript✅ 模範解答(forEachバージョン)
function getSquaredDeviations(arr) {
if (arr.length === 0) return [];
let total = 0;
arr.forEach(num => total += num);
const average = total / arr.length;
const squaredDevs = [];
arr.forEach(num => {
const deviation = num - average;
squaredDevs.push(deviation ** 2);
});
return squaredDevs;
}
console.log(getSquaredDeviations([4, 6, 8]));
// 平均は6 → [4, 0, 4]
JavaScript💡 解説
- 偏差の二乗は「分散」を求めるために使う。
- 分散 = 偏差の二乗の平均値。
- 標準偏差 = 分散の平方根。
- 偏差を二乗することで「プラスとマイナスが打ち消し合わない」ようにしている。
🔥 発展練習
- 偏差の二乗の「平均」を返す関数を作る(=分散)
- さらに平方根を取って「標準偏差」を返す関数を作る

