如何在 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 排序方法中,我们获取数组开头的最小值。
语法
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 数组方法、loop 方法和数组 apply 方法更合乎逻辑。
在我们学习的所有方法中,spread 运算符方法和默认数组排序方法使用简单且效果良好。