关于最大最小值函数

myt9527 2002-11-06 09:14:51
在javascript中是否有计算一个数组的最大最小值函数?清各位大侠赐教
...全文
121 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-11-07
  • 打赏
  • 举报
回复
<script>
var arr=[10,120,2,22]
arr.sort(function(a,b){return a-b});
alert(arr[0]);
alert(arr[arr.length-1]);
</script>
emu 2002-11-07
  • 打赏
  • 举报
回复
呵呵,我只是给个例子罢了,比较函数可以自己定义嘛:

function c(a,b){return (parseFloat(a)>parseFloat(b))?1:-1}
var arr=[10,120,2,22]
arr.sort(c);
alert(arr[0]);
alert(arr[arr.length-1]);
IT凡人 2002-11-07
  • 打赏
  • 举报
回复
可以的!
<script language="javascript">
var minnum=Math.min(22,3);
var maxnum=Math.max(57,6);
alert("最小值:"+minnum);
alert("最大值:"+maxnum);
</script>
wangxj0600 2002-11-07
  • 打赏
  • 举报
回复
又min()和max函数
bencalie 2002-11-07
  • 打赏
  • 举报
回复
emu(ston),不能使用sort(),如果是new Array(10,120,2,22),那么22将排在最前面,10在最后
emu 2002-11-07
  • 打赏
  • 举报
回复
max:O(1)
sort:O(1.3)

当然要看使用的环境了。
方工 2002-11-07
  • 打赏
  • 举报
回复
具体用哪种方法,要看你的问题规模。代码的精简不一定有较高的执行效率。
如果你的数组很大,排序要花很长的时间。
请看下例:
<script language=javascript>
function minmax(ar){
var ma = mi = ar[0];
for(var i=0; i<ar.length;i++){
if(mi>ar[i]) mi = ar[i];
if(ma<ar[i]) ma = ar[i];
}
this.max = ma;
this.min = mi;
}
var arr = new Array();
for(var i=0; i<10000; arr[i++]=Math.random());
var t1 = new Date();
arr.sort(function(a,b){return a-b});
var mn1 = arr[0];
var mx1 = arr[arr.length-1];
var t2 = new Date();
var t = new minmax(arr);
var mn2 = t.min
var mx2 = t.max;
var t3 = new Date();
alert("result: sort " + mn1 + " " + mx1+ "\nresult:minmax " + mn2 + " " + mx2);
alert("sort method time: " + (t2-t1));
alert("my function time:" + (t3-t2));
</script>
emu 2002-11-07
  • 打赏
  • 举报
回复
呵呵,高下立判啊!不止是少了一行代码,而且我原来返回不了0(相等)的它都可以;a-b 隐式类型转换不用 parse 。

崇拜中......
emu 2002-11-06
  • 打赏
  • 举报
回复
arr.sort();
alert(arr[0]);
alert(arr[arr.length-1]);
方工 2002-11-06
  • 打赏
  • 举报
回复
javascript好像没有,不过自己写一个应该不是太难吧?
<script language="JavaScript">
<!--
function max(arr){
var m = arr[0];
for(var i=0; i<arr.length;i++)
if(arr[i]>m) m = arr[i]
return m
}
function min(arr){
var m = arr[0];
for(var i=0; i<arr.length;i++)
if(arr[i]<m) m = arr[i]
return m
}
var a = new Array(0,34,5,9,10);
alert(a);
alert(max(a));
alert(min(a));
//-->
</script>
孟子E章 2002-11-06
  • 打赏
  • 举报
回复
Math.max(1,2)

min 方法
返回给出的零个或多个数值表达式中较小的值。

Math.min([number1[, number2[. . . [,numberN]]]])

可选项 number1, number2, . . ., numberN 参数为需要进行比较的数值表达式。

说明
如果没有给出参数,返回值等于 POSITIVE_INFINITY。如果有参数为 NaN,返回值也为 NaN。

87,779

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧