如何在JavaScript中獲取零個或多個數字中的最小值?


在本教程中,我們將學習如何在JavaScript中找到數字中的最小值。

讓我們逐一討論可用的方法

使用Math.min()方法

這裡,Math.min()是佔位符物件Math的靜態函式。如果沒有引數,結果為-Infinity。如果引數是數字,則結果為它們中的最小值。如果任何一個引數不是數字,則該方法返回NaN。這是ECMAScript1的一個特性。

語法

以下是Math.min()方法的語法:

Math.min(a1, a2,…an)

這裡,我們需要將數字作為引數。

引數

  • a1, a2,…an − 數字。

示例

這裡,Math.min()直接找到最小值。

<html> <body> <h3>The smallest among numbers <i>using the Math.min()</i></h3> <p id="firstId"></p> <script> var m1 = Math.min(0, -7, 20, 0.8); document.getElementById("firstId").innerHTML = "The smallest " + m1; </script> </body> </html>

使用Array.min()和Math.min().apply()

這裡,數字陣列是輸入。Math.min()應用於此陣列併為我們提供最小數字。

語法

以下是使用Array.min()方法和Array.min.apply()的語法:

Array.min = function(array)
{
   return Math.min.apply(Math, array);
};
var minimum = Array.min(arr);

這裡,必須將數字陣列作為輸入。

引數

  • arr − 陣列。

示例

這裡,Array.min()接收輸入陣列,Math.min()應用於它並返回輸出。

<html> <body> <h3>The smallest among numbers using the Math.min.apply() and Array.min()</h3> <p id="result"></p> <script> Array.min = function(array) { return Math.min.apply(Math, array); }; var array = [24, 2, 1, 0]; var minimum = Array.min(array); document.getElementById("result").innerHTML = "The smallest : " + minimum; </script> </body> </html>

使用解構賦值語法/擴充套件運算子

使用擴充套件運算子…,我們可以將值從陣列或物件提取到不同的變數中。我們可以使用此方法,因為Math.min()方法不支援直接將陣列作為輸入。

語法

使用者可以按照以下語法操作。

Math.min(...[p, q, r]);

這裡,擴充套件運算子幫助Math.min()方法返回最小值。

引數

  • p, q, r − 數字陣列

示例

這裡,帶有擴充套件運算子的Math.min()直接評估我們的輸入並顯示輸出。

<html> <body> <h3>The smallest among numbers using the spread operator</h3> <div id="result"></div> <script> var res = Math.min(...[21, 2, 3, -2, 0, -23]); document.getElementById("result").innerHTML = res; </script> </body> </html>

使用for迴圈

眾所周知,這裡我們將陣列中的第一個數字視為最小值。然後我們將陣列中其餘的數字與它進行比較。最後,我們得到最小值。

語法

使用者可以按照以下語法操作。

for (var i = 0; i<arr.length; i++)
{
   if (arr[i] < arr[0])
   {
      //arr[i] is the smallest
   }
}

這裡,for迴圈評估數字陣列,並將所有數字與第一個數字進行比較,並返回最小值。

引數

  • arr − 陣列

  • i − 陣列索引

示例

這裡,迴圈中是一般的陣列元素比較邏輯,並顯示輸出。

<html> <body> <h3>The smallest among numbers using the loop</h3> <p id="result"></p> <script> const numbers = [11, 4, 9, 0, 2]; let min = numbers[0]; for (let i = 0; i < numbers.length; i++) { if (numbers[i] < min) { min = numbers[i]; } } document.getElementById("result").innerHTML = "The smallest is " + min; </script> </body> </html>

使用Array.reduce()方法

這裡,我們將輸入提供給回撥函式。此函式迭代輸入並給出最小值。

語法

numsArr.reduce((r1, r2) => Math.min(r1, r2))

這裡,每次陣列迭代都會比較兩個值,並在最後返回最小值。

引數

  • r1, r2 − r1是累加器,r2是當前值。在陣列迭代期間,如果當前值小於累加器,則當前值成為下一個累加器。

示例

這裡,我們的輸入由reduce()處理,Math.min()返回結果。

<html> <body> <h3>The smallest among numbers using <i>Array.reduce()</i> Method</h3> <p id="numb"></p> <p id="result"></p> <script> const nums = [6, 7, 0.3]; document.getElementById("numb").innerHTML = nums; const res = nums.reduce((a, b) => Math.min(a, b)) document.getElementById("result").innerHTML = "The smallest is " + res; </script> </body> </html>

使用Array.sort()方法

在Array sort方法中,我們得到陣列開頭的最小值。

語法

arr.sort()[0]

這裡,arr是數字陣列。

示例

這裡,對輸入陣列執行JavaScript排序,並返回第一個值。

<html> <body> <h3>The smallest among numbers using <i>Array sort</i> method</h3> <p id="numb"></p> <p id="result"></p> <script> const srtArr = [60, 10, 80]; document.getElementById("numb").innerHTML = srtArr const res = srtArr.sort()[0] document.getElementById("result").innerHTML = "Smallest is " + res; </script> </body> </html>

本教程幫助我們學習了六種查詢所有給定數字中的最小值的方法。

Math.min()方法不接受元素陣列。reduce陣列方法、迴圈方法和陣列應用方法更符合邏輯。

在我們學習的所有方法中,擴充套件運算子方法和預設陣列排序方法簡單易用且效果良好。

更新於:2022年8月26日

609 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.