ディレクトリ
序文
私たちはしばしば、開発プロセスでは、最大または最小の配列を取得する必要が、以下の観点から考えることができます。
- 使用
Math.max()
、Math.min()
方法 - 最大/最小値を取得し、ご注文後
(最小を得ると同様)以下の配列の最大値を取得する方法を、見てみましょう:
let arr = [1, 2, 5, 8, 10, 100, -1]
1. staticメソッド数学最大/最小
Math.max()
関数は、グループの所定数の最大値を返します。
その構文:Math.max(value1[, value2, ...])
引数は、その後、返さない場合は、この方法を使用して、あなたは、に注意を払う必要があります-Infinity
。パラメータのいずれかを数値に変換できない場合、それが返されますNaN
。
1.1 ES6は、拡張演算子を使って結合します...
オペレータ拡張、パラメータコンマのアレイに変換することができます。
Math.max(...arr)
1.2バインディングを使用/呼び出し方法を適用
使用したapply()
最初のパラメータの方法は要求を完了するために、2番目のパラメータが配列され、この点を変更してもよいです。
Math.max.apply(null, arr)
ためapply()
の方法を使用することができ、我々は使用することができるcall()
方法を、オペレータの使用の拡大に伴い。
Math.max.call(null, ...arr)
1.3の使用を削減するために組み合わせます
reduce()
アキュムレータとしての機能を受信する方法は、(左から右へ)アレイのそれぞれの値は、最終的な計算された値として、縮小し始めました。
構文:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
ここで、アキュムレータの機能はするgetMax()
2つの数値を比較し、この還元を介して、最高値を返し、最終的にアレイ全体の最大値を返します。
function getMax(prev, next) {
return Math.max(prev, next)
}
arr.reduce(getMax)
2.ソート取得
2.1の最大値を見つけるために比較
これは、アレイを介して最大値max、ループの配列の最初の要素は、比較的大きな値が最大値に割り当てられている他の要素との最大を行うことを想定しています。サイクルの終了後、最大の値が最大値です。
let max = arr[0]
arr.forEach(item => max = item > max ? item : max)
console.log(max) // 100
2.2は、最大値を取得するために全体の配列をソートする必要があります
使用array.sort()
方法は、配列をソートする機能をソート指定しました。もちろん、あなたはまた、配列をソートするために、他の種類を使用することができます。
let AS = arr.sort((a, b) => a - b)
AS[arr.length-1] // 获取最大值:100
AS[0] // 获取最小值: -1
ブラウザは、結果を実行します
[終了]