返回

JS技巧:取数组最大值和最小值,一招制胜!

前端

哈喽,各位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的道路上越走越顺,写出更多精彩的代码!