📌  相关文章
📜  js获取数组的最小值 - Javascript(1)

📅  最后修改于: 2023-12-03 15:02:27.358000             🧑  作者: Mango

JS获取数组的最小值

在JavaScript中,我们可以使用多种方式来获取数组中的最小值。下面就是一些实现方法。

方法1:使用Math.min()函数
let arr = [5, 3, 1, 9, 8, 2, 4];
let minValue = Math.min(...arr);
console.log(minValue); //1

这里是使用Math.min()函数,这个函数可以接受任意数量的参数,并返回其中最小的一个。

其中,使用了解构运算符...将数组元素展开,并将展开后的元素作为Math.min()函数的参数使用。

方法2:使用Array.reduce()函数
let arr = [5, 3, 1, 9, 8, 2, 4];
let minValue = arr.reduce((prev, curr) => prev < curr ? prev : curr, Infinity);
console.log(minValue); //1

这里是使用Array.reduce()函数,这个函数对数组中的每一个元素执行一次回调函数(prev是上一次回调的返回值,curr是当前元素),并将回调函数的返回值作为下一次回调的第一个参数。Infinity是reduce函数的初始值,如果数组中没有元素,则直接返回Infinity

上面的代码将数组中的所有元素与Infinity进行比较,获取最小元素。

方法3:使用Math.min.apply()
let arr = [5, 3, 1, 9, 8, 2, 4];
let minValue = Math.min.apply(null, arr);
console.log(minValue); //1

这里是使用Math.min.apply()apply()将数组中的元素作为参数传递进Math.min()函数中,并返回最小值。

其中,nullapply()中的第一个参数,代表函数中的this指向全局对象。因为Math.min()函数是一个全局函数,所以这里可以传递null。

方法4:使用扩展运算符和Array.sort()
let arr = [5, 3, 1, 9, 8, 2, 4];
let minValue = [...arr].sort((a, b) => a - b)[0];
console.log(minValue); //1

这里是使用扩展运算符和Array.sort()函数,Array.sort()函数默认按照字典顺序对数组进行排序,所以我们需要传递一个比较函数来实现数字的排序。

在这个例子中,我们使用了箭头函数 a - b,当该函数返回值为正数时,a会被排在b后面,否则就会被排在前面。

然后我们对数组进行一次浅拷贝处理,通过 sort() 函数排序后,将数组的第一个元素作为最小值。

这里需要注意的是,JavaScript在比较数字时,使用的是ASCII码的排序方式,所以我们需要将传递的比较函数转换成数字类型。

至此,我们介绍了四种简便易行的计算JavaScript数组最小值的方法。

更多JavaScript相关的知识可以参考 MDN web docs