はじめに
この実験では、JavaScript のプログラミングチャレンジに取り組みます。ここでは、与えられた関数を使って各要素を別の値にマッピングした後、配列の最大値を返す関数を作成することが課題となります。Array.prototype.map() と Math.max() を使うことで、この課題を効率的に達成し、これらの重要な JavaScript メソッドをより深く理解することができます。
関数に基づいて配列の最大値を求める方法
関数に基づいて配列の最大値を求めるには、次の手順に従います。
- ターミナル/SSH を開き、コーディングの練習を始めるために
nodeと入力します。 Array.prototype.map()を使って、配列の各要素を与えられた関数fnが返す値にマッピングします。Math.max()を使って、マッピングされた配列の最大値を取得します。
以下は、上記の手順を実装したコードのサンプルです。
const maxBy = (arr, fn) =>
Math.max(...arr.map(typeof fn === "function" ? fn : (val) => val[fn]));
maxBy 関数を使用するには、配列と各要素を値にマッピングするために使用する関数を渡します。関数を直接渡すか、配列の各オブジェクトの値にアクセスするために使用するキーを表す文字列を渡すことができます。
以下は、maxBy 関数のいくつかのサンプルコールです。
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], (x) => x.n); // 8 を返す
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], "n"); // 8 を返す
まとめ
おめでとうございます!関数に基づく配列の最大値の実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。