如何在 JavaScript 中查詢陣列的最小/最大元素?
在本教程中,我們將學習在 JavaScript 中查詢陣列的最大和最小元素的不同方法。最小元素是陣列中所有元素中最小的元素,而最大元素是其中最大的元素。
以下是我們可以用來查詢陣列的最小/最大元素的方法。
- 遍歷整個陣列
- 使用 Math.min() 和 Math.max() 方法。
讓我們藉助程式示例來討論這些方法。
方法 1:遍歷整個陣列
在這種方法中,我們將使用for迴圈遍歷整個陣列,並將當前元素與較小元素的前一個值進行比較;如果當前元素小於較小元素的前一個值,則我們將更新其值。類似地,對於最大元素,如果當前元素大於最大元素的前一個值,我們將更新其值。解決此問題將需要線性或O(n)時間。
讓我們來看一個上述方法的示例,以便更好地理解其實現 -
步驟
- 步驟 1 - 在第一步中,我們將定義一個我們將搜尋最小和最大元素的數字陣列,並宣告最小和最大變數,其初始值為分配給兩者的陣列的第一個元素。
- 步驟 2 - 在下一步中,我們需要使用 for 迴圈來遍歷陣列,並使用更新最小和最大變數值的邏輯。
- 步驟 3 - 在此步驟中,我們將編寫邏輯以使用 JavaScript 在使用者螢幕上顯示輸出。
示例 1
以下示例將說明使用O(1)額外空間的簡單遍歷方法。
<html> <body> <p>The original array: [28, 45, 69, 20, 15, 7, 98]</p> <p id="result"></p> <script> let array = [28, 45, 69, 20, 15, 7, 98]; let min = array[0], max = array[0]; for (let i = 1; i < array.length; i++) { if (array[i] > max) max = array[i]; if (array[i] < min) min = array[i]; } document.getElementById('result').innerHTML = "The maximum or the largest element of the array is: " + max + "<br>" + "The minimum or the smallest element of the array is: " + min; </script> </body> </html>
在此示例中,我們聲明瞭一個名為array的數字陣列,然後聲明瞭兩個變數min和max,其初始值為陣列的第一個元素,這兩個變數都將表示陣列中的最小和最大元素。執行這些步驟後,我們將使用 for 迴圈遍歷陣列元素,並在每次迭代中將min和max的值更新為陣列中當前的最小和最大元素。
方法 2:使用 Math.min() 和 Math.max() 方法
在這種查詢陣列中最大和最小元素的方法中,我們將使用 JavaScript 的內建Math.max()和Math.min()方法以及apply()方法或陣列解構語法。
Math.max()和Math.min()方法僅適用於一次多個數值。Math.max()方法返回傳遞給它的所有數字中的最大數字,而Math.min()返回最小值。但是,這兩種方法都不適用於陣列,因為它們僅用於不同的數字。
因此,要使用這些方法在陣列中查詢最小/最大元素,我們需要將陣列轉換為一組不同的數字。在ES6或ES2015之前,我們將使用apply()方法將陣列轉換為一組不同的數字。但在ES6之後,當引入陣列解構語法來解構陣列時,我們開始使用該語法來實現相同目的。
讓我們看看使用上述兩種方法在 JavaScript 中查詢陣列中最小/最大元素的實現。
使用 apply() 方法
在 JavaScript 中,apply() 方法使用兩個引數呼叫,第一個是this值,另一個是我們正在其中搜索最小/最大元素的陣列。
語法
let arr=[]; let min=Math.min.apply(null, arr); let max=Math.max.apply(null, arr);
在上述語法中,我們使用null代替this值,因為在這種情況下我們不需要此變數。
示例 2
以下示例將說明如何將 Math.max() 和 Math.min() 方法與 JavaScript 的 apply() 方法結合使用。
<html> <body> <p>The array : [49, 58, 22, 17, 79, 6, 92]</p> <p id="result"></p> <script> let array = [49, 58, 22, 17, 79, 6, 92]; let min = Math.min.apply(null, array); let max = Math.max.apply(null, array); document.getElementById('result').innerHTML = "The max element: " + max + "<br>" + "The min element: " + min ; </script> </body> </html>
使用陣列解構語法方法
陣列解構首先是在引入 ES6 時引入的。陣列解構是一種非常有用的方法。它可以用於區分陣列的元素,合併兩個陣列,單獨訪問陣列元素。
在這種情況下,我們將使用此語法來區分陣列的數字。
語法
以下是陣列解構的語法。
let arr=[]; console.log(…arr); // logs the array elements distinctly in the console
我們在要解構的陣列名稱之前使用三個點(…)。
示例 3
以下示例將說明如何將陣列解構與 JavaScript 的 Math.max() 和 Math.min() 方法結合使用,以在陣列中查詢最小/最大值 -
<html> <body> <p>The array is: [56, 68, 23, 9, 77, 65, 2, 89]</p> <p id="result"></p> <script> let array = [56, 68, 23, 9, 77, 65, 2, 89]; let min = Math.min(...array); let max = Math.max(...array); document.getElementById('result').innerHTML = "The maximum element of the array is: <b>" + max + "</b><br>" + "The minimum element of the array is: <b>" + min + "</b>"; </script> </body> </html>
在以上兩個示例中,我們都看到了如何透過兩種不同的語法以兩種方式使用 JavaScript 的 Math.min() 和 Math.max() 方法在 JavaScript 中查詢陣列中的最小/最大元素。
在本教程中,我們深入討論了兩種在 JavaScript 中查詢陣列中最小/最大元素的不同方法,併為每種方法提供了程式碼示例。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP