如何在 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