JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでMath関数を使わずに最小値を取得する方法

本記事では、任意の個数の数値リテラルを引数として受け取り、ライブラリ関数(Math.minなど)を一切使用せずに、その中から最も小さい数値を返す関数の作成方法を解説します。

この問題は、whileループを使ったシンプルな比較処理によって効率よく解決できます。以下に具体的な実装例を示します。

実装例

const numbers = [12, 5, 7, 43, -32, -323, 5, 6, 7, 767, 23, 7];
const findMin = (...numbers) => {
    let min = Infinity, len = 0;
    while(len++ < numbers.length){
        min = numbers[len] < min ? numbers[len] : min;
    }
    return min;
};
console.log(findMin(...numbers));

コードのポイント

  • 初期値としてInfinityを設定することで、どんな数値とも正しく比較できるようにしています。
  • 可変長引数(スプレッド演算子 ...)を使うことで、引数の個数に制限なく対応できます。
  • 三項演算子を使い、現在の最小値より小さい値が見つかった場合のみ更新します。

出力結果

コンソールには以下のように表示されます。

-323

このように、Math.minのような組み込み関数に頼らなくても、ループと条件分岐を組み合わせるだけで、配列内の最小値を簡単に求めることができます。

  1. JavaScriptのMath.log2()関数とは?使い方とサンプルコードを解説

    Math.log2()関数とは JavaScriptのMath.log2()関数は、Mathオブジェクトに用意されているメソッドの一つで、引数として渡した数値の「2を底とする対数(log₂)」を返します。 つまり、「2を何乗するとその数値になるか」を求める関数です。例えばMath.log2(8)は「2の3乗が8」なので3を返し、Math.log2(1024)なら10を返します。 なお、この関数はES6(ECMAScript 2015)で追加された比較的新しいメソッドのため、古いブラウザでは利用できない場合があります。 構文 基本的な構文は次のとおりです。 Math.log2(数値); サン

  2. JavaScriptのNumber()関数とは?使い方とサンプルコードを解説

    JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを