注册 登录
编程论坛 JavaScript论坛

求助! javascript 获取数组最大值

qq1362409066 发布于 2014-08-23 10:07, 2047 次点击
程序代码:
<html>

 <head>
  <title></title>

 </head>

 <body>
  <script type="text/javascript">
   /*
     1.获取数组的最值
   
*/
   var arr = [66,13,37,21,89,17]
   //function getMax(arr) 也可以这样写
   var getMax = function(arr){//传入arr数组参数
   
   
    var max  = 0;//初始化角标
    for(var x = 1;x<arr.length;x++){
        if(arr[x]>arr[max])// 1的角标>0的角标吗?
        max = x;//如果大于那么就把1的角标对应的参数赋值给max角标对应的参数。
    }
    return arr[max];
   }
   var maxValue  =getMax(arr);
    alert("maxValue="+maxValue);
  </script>

 </body>
</html>
6 回复
#2
qq13624090662014-08-23 10:08
retuen 把值返回给了谁??
#3
诸葛修勤2014-08-23 10:20
在什么地方调用的?
#4
qq13624090662014-08-23 10:23
回复 3 楼 诸葛修勤
return arr[max]; //这段代码是什么意思  我是初学者自学的
#5
chaiyesong2014-09-21 11:18
回复 楼主 qq1362409066
你在定义一个零时变量啊 每次跟这个变量比较然后在赋值,在进行比较,直到比较完成啊
#6
渴望做梦2015-02-11 16:13
回复 2楼 qq1362409066
不是给了这个参数maxValue了吗
#7
冰镇柠檬汁儿2015-03-12 11:46
以下是引用qq1362409066在2014-8-23 10:07:51的发言:
   
   /*
     1.获取数组的最值
   */
   var arr = [66,13,37,21,89,17]
   //function getMax(arr) 也可以这样写
   var getMax = function(arr){//传入arr数组参数
   
     
    var max  = 0;//初始化角标
    for(var x = 1;x
建议在此中情况还是用函数定义的方式function getMax(arr),如果用函数变量定义的方式,就不能在函数定义之前调用函数了,即把var maxValue=getMax(arr);写在var getMax = function(arr)之前,会报找不到getMax的错误,如果使用function getMax(arr)方式定义函数就不会有这样的问题。

在var maxValue=getMax(arr);中调用了getMax函数,传入arr数组,在for循环中得到最大值的位置(两两对比,把大的值的数组的位置记录下来,最终得到最大值),return出数组中最大的值,maxValue变量就得到了这个值。

这只是一个新手常用的获取最大值的方法,但很麻烦,其实Math对象中的max方法可以直接得到数组的最大值
var arr = [66, 13, 37, 21, 89, 17], a = Math.max.apply(this, arr);
alert(a);
a就是最大值,最小值使用Math.max.apply(this, arr)即可.
但是使用apply这个方法可能新手很难理解(包括this指针的问题)
1