JavaScriptで配列の平均値を最も近い整数に丸めて取得する方法
この記事では、数値の配列を受け取り、その平均値を最も近い整数に丸めて返すJavaScript関数の実装方法を解説します。
問題
数値の配列を引数として受け取るJavaScript関数を作成する必要があります。この関数は、配列内の全要素の平均値を計算し、最も近い整数に丸めた結果を返します。また、空の配列が渡された場合でもゼロ除算エラーが発生しないよう、安全に処理できる設計にします。
コード例
以下がその実装コードです。
const arr = [45, 23, 67, 68, 12, 56, 99];
const roundedMean = (arr = []) => {
const { sum, count } = arr.reduce((acc, val) => {
let { sum, count } = acc;
count++;
sum += val;
return { sum, count };
}, {
sum: 0, count: 0
});
const mean = sum / (count || 1);
return Math.round(mean);
};
console.log(roundedMean(arr));コードの解説
この関数では、reduce()メソッドを使って配列を一度だけ走査しながら、要素の合計値(sum)と要素数(count)を同時に集計しています。初期値として { sum: 0, count: 0 } を渡しているため、空の配列でも安全に動作します。
次に、合計値を要素数で割って平均値を求めます。(count || 1) としているのは、配列が空だった場合のゼロ除算を防ぐためです。最後に Math.round() を用いて、最も近い整数に四捨五入した値を返しています。
なお、小数点以下を切り捨てたい場合は Math.floor() に、切り上げたい場合は Math.ceil() に置き換えるだけで簡単に対応できます。
出力結果
上記のコードをコンソールで実行すると、以下の出力が得られます。
53
この例では、配列 [45, 23, 67, 68, 12, 56, 99] の合計は370、要素数は7であるため、平均値は約52.86になります。これを四捨五入すると 53 となり、それがコンソールに出力されます。
-
【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法
JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順
-
JavaScriptにおける配列の分割代入(Destructuring)の基本と使い方
分割代入(Destructuring)とは、配列から値を取り出して個別の変数に展開するための構文です。ES2015(ES6)で導入されたこの機能を使うと、配列の各要素を簡潔かつ読みやすく変数に割り当てることができます。 配列の分割代入のサンプルコード 以下は、JavaScriptで配列の分割代入を行うコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport&quo