JavaScriptで各サブ配列の平均を個別に計算し、すべての平均の合計を返す方法
例えば、次のような整数を要素とする配列の配列(ネストされた配列)があるとします。
const arr = [
[1, 2, 3],
[4, 5, 6]
];
ここで求められているのは、このような配列の配列を引数として受け取り、各サブ配列の平均値を個別に計算したうえで、それらすべての平均の合計を返すJavaScript関数を作成することです。
したがって、上記の配列の場合、出力は次のようになります。
2 + 5 = 7
コード例
この処理を実装したコードは次のとおりです。
const arr = [
[1, 2, 3],
[4, 5, 6]
];
const sumAverage = (arr = []) => {
const average = arr.reduce((acc, val) => {
const total = val.reduce((total, num) => total += num, 0);
return acc += total / val.length;
}, 0);
return Math.round(average);
};
console.log(sumAverage(arr));
出力結果
コンソールには次のように出力されます。
7
コードの解説
この関数の仕組みを簡単に説明します。
まず、外側の reduce() メソッドが各サブ配列を順番に処理します。各サブ配列に対しては、内側の reduce() メソッドで要素の合計値を算出し、その合計をサブ配列の要素数で割ることで平均値を求めています。求めた平均値はアキュムレータ(acc)に加算されていき、最終的にすべての平均の合計が得られます。
最後に Math.round() を使って結果を四捨五入し、整数値として返しています。この方法なら、サブ配列の数や要素数が異なる場合でも柔軟に対応できます。
-
JavaScriptで増加する三角形のn行目の全数値の合計を求める方法
増加する三角形とはこの問題における「増加する三角形」とは、次のような形の三角形を指します。 1 2 3 4 5 67 8 9 10ご覧のとおり、各行には連続する自然数が左から右へと順に配置され、行が下に進むほど要素の数が1つずつ増えていきます。問題の概要数値 n を受け取り、増加する三角形の n 行目に含まれるすべての数値の合計を返すJavaScript関数を作成する必要があります。例えば15行目の場合、その行には105から120までの連続する15個の数値が含まれており、それらの合計は1695
-
JavaScriptで3つの配列に共通する要素の合計を求める方法
問題今回は、3つの数値型配列を引数として受け取るJavaScript関数を作成します。この関数は、3つの配列すべてに共通して存在する要素だけを抜き出し、それらの合計値を返す必要があります。たとえば、次のような配列が与えられた場合を考えてみましょう。const arr1 = [4, 4, 5, 8, 3]; const arr2 = [7, 3, 7, 4, 1]; const arr3 = [11, 0, 7, 3, 4];この場合、3つの配列すべてに存在するのは「4」と「3」なので、期待される出力は 4 + 3 = 7 となります。解決策のコード例以下がその実装コードです。 { le