では「各要素の平均値との差(偏差)を計算して返す関数」を作ってみましょう。
これは 統計の基礎(偏差) に触れる練習です。
目標
- 配列の平均値を求める
- 各要素から平均値を引いて「偏差」を計算する
- 偏差を集めた新しい配列を返す
✅ 模範解答(for文バージョン)
function getDeviations(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 deviations = [];
for (let i = 0; i < arr.length; i++) {
deviations.push(arr[i] - average);
}
return deviations;
}
// 実行例
console.log(getDeviations([3, 7, 2, 9, 5]));
// 平均は 5.2 → [-2.2, 1.8, -3.2, 3.8, -0.2]
JavaScript✅ 模範解答(for…ofバージョン)
function getDeviations(arr) {
if (arr.length === 0) return [];
const total = arr.reduce((sum, num) => sum + num, 0);
const average = total / arr.length;
const deviations = [];
for (const num of arr) {
deviations.push(num - average);
}
return deviations;
}
console.log(getDeviations([10, 20, 30, 40]));
// 平均は25 → [-15, -5, 5, 15]
JavaScript✅ 模範解答(forEachバージョン)
function getDeviations(arr) {
if (arr.length === 0) return [];
let total = 0;
arr.forEach(num => total += num);
const average = total / arr.length;
const deviations = [];
arr.forEach(num => {
deviations.push(num - average);
});
return deviations;
}
console.log(getDeviations([4, 6, 8]));
// 平均は6 → [-2, 0, 2]
JavaScript💡 解説
- 偏差 = 各要素 − 平均値
- 偏差の合計は必ず 0 になる(統計の基本性質)。
- 偏差を使うと「分散」や「標準偏差」など、データのばらつきを測る指標につながる。
🔥 発展練習
- 偏差の「二乗」を計算して返す関数を作る(分散の準備)
- 偏差の絶対値を返す関数を作る(平均からの距離を測る)
