JavaScript获取数组最大值与最小值的四种实现方式

作者:青柠时间:2026-10-21 23:07:16浏览:388

本文介绍在JavaScript中获取数组最大值和最小值的四种常用方法。包括利用toString或join转换字符串后配合eval执行Math方法、先排序后取首尾元素、遍历比较的假设法,以及使用apply将数组作为参数传递给Math.max/min。文章提供完整代码示例,帮助开发者理解不同方案的实现逻辑与适用场景。

JavaScript数组极值获取概述

假设有一个包含数字的数组,例如[54,65,43,21,12,34,45,58,97,24],我们需要找出其中的最大值和最小值。

首先,我们需要在代码中定义这个数组。

var ary = [54,65,43,21,12,34,45,58,97,24];

字符串拼接法实现

第一种方法是字符串拼接法。

具体做法是利用数组的toString()或join()方法将其转换为逗号分隔的字符串,然后将其拼接到Math.max()和Math.min()函数调用中,最后通过eval()函数执行拼接后的字符串代码,从而得到结果。


var maxN = eval("Math.max(" + ary.toString() + ")");
var minN = eval("Math.min(" + ary.toString() + ")");

或者采用另一种字符串拼接形式。


var maxN = eval("Math.max(" + ary.join() + ")");
var minN = eval("Math.min(" + ary.join() + ")");

排序法实现

第二种方法是排序法。

通过sort()方法将数组按数值从小到大进行排序,排序后数组的第一个元素即为最小值,最后一个元素即为最大值。


ary.sort(function(a,b){return a-b;});
var minN = ary[0];
var maxN = ary[ary.length-1];

假设法实现

第三种方法是假设法。

初始假设数组的第一个元素既是最大值也是最小值,随后遍历数组剩余元素。如果当前元素大于假设的最大值,则更新最大值;如果当前元素小于假设的最小值,则更新最小值。


var maxN = ary[0];
var minN = ary[0];
for(var i=1;i<ary.length;i++){
  var cur = ary[i];
  cur>maxN ? maxN=cur : null;
  cur<minN ? minN=cur : null;
}

Math.apply方法实现

第四种方法是利用Math对象的max和min方法。

这里的关键是使用apply()方法,将数组作为参数列表传递给Math.max()和Math.min(),从而直接获取极值。


var maxN = Math.max.apply(null,ary);
var minN = Math.min.apply(null,ary);

以上介绍了JavaScript中获取数组极值的四种主要方式,希望这些内容能对您的编程学习或实际工作有所帮助。

作者最新文章