📅  最后修改于: 2023-12-03 15:02:27.358000             🧑  作者: Mango
在JavaScript中,我们可以使用多种方式来获取数组中的最小值。下面就是一些实现方法。
let arr = [5, 3, 1, 9, 8, 2, 4];
let minValue = Math.min(...arr);
console.log(minValue); //1
这里是使用Math.min()函数,这个函数可以接受任意数量的参数,并返回其中最小的一个。
其中,使用了解构运算符...
将数组元素展开,并将展开后的元素作为Math.min()函数的参数使用。
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
进行比较,获取最小元素。
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()
函数中,并返回最小值。
其中,null
是apply()
中的第一个参数,代表函数中的this
指向全局对象。因为Math.min()
函数是一个全局函数,所以这里可以传递null。
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