返回
JS技巧:取数组最大值和最小值,一招制胜!
前端
2023-11-10 11:57:58
哈喽,各位JS爱好者们,大家好!今天,我将带大家领略一招JS绝技——从数组中取出最大值和最小值。准备好大开眼界了吗?我们开始吧!
排序大法
最常见的取值手段,当属排序 大法。JS为我们提供了sort()
方法,它可以将数组中的元素按升序或降序排列。
比如,我们有一个数组[5, 2, 8, 3, 1]
,使用sort()
后,便会得到[1, 2, 3, 5, 8]
。
既然数组已经排好了序,要取最大值,直接拿数组的最后一个元素即可;要取最小值,那就取数组的第一个元素,简单粗暴!
代码实现如下:
const arr = [5, 2, 8, 3, 1];
const sortedArr = arr.sort((a, b) => a - b); // 升序排列
console.log(`最大值:${sortedArr[sortedArr.length - 1]}`);
console.log(`最小值:${sortedArr[0]}`);
是不是so easy?
假设大法
除了排序大法,我们还可以使用假设 大法。
假设数组的第一个元素就是最大值,然后遍历整个数组,如果遇到比它更大的元素,就把它替换掉。最后,数组的第一个元素就是最大值。
同样的,假设数组的第一个元素就是最小值,遍历数组,如果遇到比它更小的元素,就把它替换掉。最后,数组的第一个元素就是最小值。
代码实现如下:
const arr = [5, 2, 8, 3, 1];
let max = arr[0];
let min = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
console.log(`最大值:${max}`);
console.log(`最小值:${min}`);
假设大法虽然比排序大法多了一层遍历,但胜在代码简洁,大家可以根据自己的喜好选择使用。
Math.min和Math.max大法
最后,JS还为我们提供了Math.min()
和Math.max()
这两个强大的函数,它们可以分别返回一组数字中的最小值和最大值。
使用这两个函数,代码就更简洁了:
const arr = [5, 2, 8, 3, 1];
console.log(`最大值:${Math.max(...arr)}`);
console.log(`最小值:${Math.min(...arr)}`);
注意,...arr
是展开运算符,它将数组展开成独立的元素,传给Math.min()
和Math.max()
函数。
总结
好了,今天的内容就到这里了。大家学会用JS取出数组中的最大值和最小值了吗?记住,排序大法、假设大法和Math.min/max大法,各有千秋,大家可以根据自己的需求灵活选择。
最后,祝愿大家在JS的道路上越走越顺,写出更多精彩的代码!