JavaScriptのmap()メソッドを使って各配列の最大値を抽出する方法
JavaScriptでは、配列の中に配列が入った2次元配列(ネストされた配列)を扱うことがよくあります。例えば、次のような数値の2次元配列を考えてみましょう。
const arr = [ [12, 56, 34, 88], [65, 66, 32, 98], [43, 87, 65, 43], [32, 98, 76, 83], [65, 89, 32, 54], ];
このような配列に対して、map()メソッドを使って各サブ配列(内側の配列)を走査し、それぞれのサブ配列に含まれる最大の要素を抽出した新しい配列を返す関数を作成する必要があります。
それでは、この関数のコードを見ていきましょう。
コード例
const arr = [
[12, 56, 34, 88],
[65, 66, 32, 98],
[43, 87, 65, 43],
[32, 98, 76, 83],
[65, 89, 32, 54],
];
const findMax = arr => {
return arr.map(sub => {
const max = Math.max(...sub);
return max;
});
};
console.log(findMax(arr));コードの解説
このコードでは、外側の配列に対してmap()メソッドを呼び出しています。map()は各サブ配列を引数subとして受け取り、コールバック関数の処理結果からなる新しい配列を返します。
サブ配列から最大値を求めるには、Math.max()メソッドを使用します。スプレッド構文(...)を使ってサブ配列の要素を個別の引数として展開することで、Math.max()はその中から最大の数値を返してくれます。
出力結果
コンソールには次のように出力されます。
[ 88, 98, 87, 98, 89 ]
各サブ配列の最大値が順番に抽出され、新しい配列として返されていることがわかります。この方法は、スプレッド構文とMath.max()を組み合わせることで、シンプルかつ可読性の高いコードを実現できるのが魅力です。
-
JavaScriptのArray.prototype.map()メソッドの使い方を徹底解説
Array.prototype.map()とは? JavaScriptのArray.prototype.map()メソッドは、配列の各要素に対してコールバック関数を実行し、その戻り値から新しい配列を作成するためのメソッドです。元の配列は変更されないため、安全にデータ変換を行いたい場合に非常に便利です。 構文 arr.map(function callback(currentValue[, index[, array]]) 各引数の意味は以下のとおりです。 currentValue:現在処理している要素の値 index(省略可能):現在処理している要素のインデックス番号 array(省略可能
-
JavaScriptで配列内の最長の「山」部分配列の長さを求める方法
山(マウンテン)部分配列とは配列 arr の(連続した)部分配列 sub が「山」と呼ばれるのは、以下の性質を満たす場合です。sub.length >= 3 であることある 0 < i < sub.length - 1 が存在し、sub[0] < sub[1] < ... < sub[i] > sub[i+1] > ... > sub[sub.length - 1] となること。つまり、一度増加していき頂点に達した後、減少に転じる形状を持つこと問題数値の配列 arr を第一引数(唯一の引数)として受け取るJavaScript関数を作成する必