JavaScriptで配列の中央値を計算する方法
本記事では、数値の配列を受け取り、その中央値(メジアン)を返すJavaScript関数の作成方法を解説します。
中央値の統計的な意味
中央値とは、昇順または降順に並べ替えた数値のリストにおいて、ちょうど真ん中に位置する値のことです。極端な外れ値の影響を受けにくいため、単純な平均値よりもデータセットの実態をより正確に表せる場合があります。
実装の方針
まず、元の配列を変更しないようコピーしてから昇順にソートします。そのうえで、要素数に応じて処理を分けます。
- 要素数が奇数の場合: ソート後の配列の中央にある1つの値をそのまま返します。
- 要素数が偶数の場合: 中央に隣り合う2つの値を取り出し、その平均値を返します。
サンプルコード
const arr = [4, 6, 2, 45, 2, 78, 5, 89, 34, 6];
const findMedian = (arr = []) => {
const sorted = arr.slice().sort((a, b) => {
return a - b;
});
if(sorted.length % 2 === 0){
const first = sorted[sorted.length / 2 - 1];
const second = sorted[sorted.length / 2];
return (first + second) / 2;
}
else{
const mid = Math.floor(sorted.length / 2);
return sorted[mid];
};
};
console.log(findMedian(arr));
実行結果
コンソールには以下が出力されます。
6
コードのポイント
arr.slice()で元の配列をコピーしてからソートしているため、元データが破壊的に変更されません。sort((a, b) => a - b)のように比較関数を渡すことで、数値として正しい順序でソートされます(比較関数なしでは文字列として並べ替えられてしまいます)。- 偶数長の場合は
(first + second) / 2により、中央に位置する2つの値の平均を中央値として算出しています。
-
JavaScriptで配列の中央値を計算する方法をわかりやすく解説
中央値(メジアン)とは、数値データを小さい順に並べたときにちょうど中央に位置する値のことです。JavaScriptで配列の中央値を求めるには、まず配列をソートし、その後要素数に応じて処理を分けます。要素数が奇数の場合は中央の1つの要素を、偶数の場合は中央に近い2つの要素の平均値を中央値として返します。中央値の計算手順配列をソートする - 数値配列の場合、sort() メソッドに比較関数 (a, b) => a - b を渡して正しく昇順ソートします。中央のインデックスを求める - Math.floor(arr.length / 2) で中央位置を整数として取得します。要素数の判定を行う
-
JavaScriptで配列の平均値を計算する方法
JavaScriptで配列の平均値を求めるには、配列内のすべての要素を合計し、その合計を配列の長さ(要素数)で割ります。要素の合計を求めるには、forEach()メソッドやreduce()メソッドを使うと簡単に実装できます。コード例<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initia