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