ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptで最大値を求める方法

JavaScriptで最大値を求める方法

青灯夜游
リリース: 2023-01-06 11:18:07
オリジナル
18610 人が閲覧しました

方法: 1. "Math.max()" 関数を使用して最大値を見つけ、指定された 2 つの数値のうち大きい方の値を返すことができます; 2. 再帰関数を使用して最大値を見つけます。最大値; 3. for ループを使用してトラバースして最大値を見つけます; 4. "Math.max.apply(null, [value, value, value, value...)" ステートメントを使用して最大値を見つけます。

JavaScriptで最大値を求める方法

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

#最初のメソッド

Math.max

JavaScript は、一連の数値を返す Math.max 関数を提供します。値、使用法は次のとおりです:

Math.max([value1[,value2, ...]])
ログイン後にコピー

注目に値します:

  • パラメータを数値に変換できない場合、結果は NaN になります。

  • max は Math の静的メソッドであるため、Math インスタンスのメソッドとしてではなく、Math.max() のように使用する必要があります (簡単に言えば、 new を使用しないでください) )

  • #パラメータがない場合、結果は -Infinity (負の無限大であることに注意してください)
  • #そして、分析する必要があるもの

1. 数値に変換できないパラメータがある場合、

Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN
ログイン後にコピー

2 のように、パラメータを数値に変換できれば比較できることを意味します。パラメーターがない場合、結果は - Infinity になります。これは Math.min 関数に対応します。パラメーターがない場合、結果は Infinity になります。したがって、次のようになります。

var min = Math.min();
var max = Math.max();
console.log(min > max);
ログイン後にコピー

Math.max メソッドを理解すると、次のようになります。この要件を満たすためにどのようなメソッドを使用できるかを考えるために、配列の最大値を見つける例を示します。

元のメソッド

最も原始的な方法は、もう一度ループすることです:

var arr = [6, 4, 1, 8, 2, 11, 23];

var result = arr[0];
for (var i = 1; i < arr.length; i++) {
    result =  Math.max(result, arr[i]);
}
console.log(result);
ログイン後にコピー

reduce

Because It配列を走査して最終値を見つけることです。その後、reduce メソッドを使用できます。

var arr = [6, 4, 1, 8, 2, 11, 23];

function max(prev, next) {
    return Math.max(prev, next);
}
console.log(arr.reduce(max));
ログイン後にコピー

apply

apply を使用することも別の方法です。

var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max.apply(null, arr))
ログイン後にコピー

ES6 …

ES6 スプレッド演算子を使用します:

var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max(...arr))
ログイン後にコピー

2 番目のメソッド

Use recursive関数

var arr = [9,8,55,66,49,68,109,55,33,6,2,1];
var max = arr[0];
function findMax( i ){
  if( i == arr.length ) return max;
  if( max < arr[i] ) max = arr[i];
  findMax(i+1);
}
 
findMax(1);
console.log(max);
ログイン後にコピー

forループトラバーサルを使用

var arr = [9,8,55,66,49,68,109,55,33,6,2,1];  
var max = arr[0];
for(var i = 1; i < arr.length; i++){
  if( max < arr[i] ){
    max = arr[i];
  }
}
 
console.log(max);
ログイン後にコピー

applyを使用して配列をmaxメソッドに渡し、直接返します

Math.max.apply(null,[9,8,55,66,49,68,109,55,33,6,2,1])
ログイン後にコピー

さらに、多くの配列ソートが行われます。 、ソート後の新しい配列インデックス値に基づいて最大値/最小値を取得できます。

var a=[1,2,3,5];
console.log(Math.max.apply(null, a));//最大值
console.log(Math.min.apply(null, a));//最小值
ログイン後にコピー

多次元配列は次のように変更できます:

var a=[1,2,3,[5,6],[1,4,8]];
var ta=a.join(",").split(",");//转化为一维数组
console.log(Math.max.apply(null,ta));//最大值
console.log(Math.min.apply(null,ta));//最小值
ログイン後にコピー

[関連する推奨事項:

JavaScript 学習チュートリアル

]

以上がJavaScriptで最大値を求める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート