javascript 如何定义集合 这样最好用数组,然后用数组的排序 sort(),再取第一个和最后一个值就OK了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可不可以帮帮忙,把代码写出来呢~~因为我不会写javascript只会看,呵呵~~ <input id="t1" type="text" value="3"><input id="t2" type="text" value="8"><input id="t3" type="text" value="6"><input type="button" value="look" onclick="look();"><script>function look(){ var list = new Array(3); list[0] = document.getElementById("t1").value; list[1] = document.getElementById("t2").value; list[2] = document.getElementById("t3").value; list.sort(); alert("min:"+list[0]+",max:"+list[list.length-1]);}</script> 排序的效率并不是十分的高,你可以使用 Math.max() 此类的函数来完成:<input id="t1" type="text" value="3"><input id="t2" type="text" value="8"><input id="t3" type="text" value="6"><input type="button" value="look" onclick="look();"><script>function look(){ var list = new Array(3); list[0] = document.getElementById("t1").value; list[1] = document.getElementById("t2").value; list[2] = document.getElementById("t3").value; //list.sort(); //alert("min:"+list[0]+",max:"+list[list.length-1]); alert(Math.max.apply(null, list)); alert(Math.min.apply(null, list));}</script> 你甚至连这个 array 都可以省略掉,直接调用 Math.max() Math.min() :<input id="t1" type="text" value="3"><input id="t2" type="text" value="8"><input id="t3" type="text" value="6"><input type="button" value="look" onclick="look();"><script>function look(){ alert(Math.max.call(null ,document.getElementById("t1").value ,document.getElementById("t2").value ,document.getElementById("t3").value )); alert(Math.min.call(null ,document.getElementById("t1").value ,document.getElementById("t2").value ,document.getElementById("t3").value ));}</script> 请教meizz(梅花雪):直接Math.max(),Math.min()就可以了,为什么还要调用apply,call方法?Array.sort()排序的效率并不是十分的高,你可以使用 Math.max() 此类的函数来完成后者比前者效率高的依据在哪里? function fArOdr(oAr, nParam){ if(!nParam)var nParam=1; switch(nParam){ case 2: return oAr.reverse(); case 3: return oAr.sort(function(a,b){return a-b;}); case 4: return oAr.sort(function(a,b){return b-a;}); default: return oAr.sort(); } } // shawl.qiu script Math.max() 的操作相当于一个单循环,Array.sort() 对于乱序有数组而言,操作的次数要多于单循环的操作数,所以效率不如上者。第二个回复用call我算是画蛇添足了。 Math.max() 的操作相当于一个单循环,Array.sort() 对于乱序有数组而言,操作的次数要多于单循环的操作数,所以效率不如上者。max是O(n)级的,而排序算法至少是O(nlogn)级的。 谢谢各位大虾,我也明白了,谢谢 dh20156(风之石)已经解决了,还有meizz(梅花雪)也给我们看到了更多的方法,我学到了不少,总之谢谢你们! 通常对于元素比较多的数组,我非常同意meizz(梅花雪)的观点,但我的意思是就本题而言,sort()和max()算法的优劣从何谈起? 用JQuery拖动table 让tr里面可以变成一行(在线等) 用户留言,增加剩余字数提示 浏览器移动 获得div 大小 通过js 在线 急呀 求帮助 js for死循环 关于getElementById的一个问题 求一个在窗口大小范围内漂浮的广告框,而且碰到窗口四周会反弹 如何让iframe内的页刷新一次?? 需要通用的Javascript手册,不是jscript手册,请问从哪里可以下载,多谢! 今天又加一级,散个代码(rainbow text) js如何获取QQ登陆状态 问大家一个有关js的小问题? 我放在页面上用于等侍的层
<input id="t2" type="text" value="8">
<input id="t3" type="text" value="6">
<input type="button" value="look" onclick="look();">
<script>
function look(){
var list = new Array(3);
list[0] = document.getElementById("t1").value;
list[1] = document.getElementById("t2").value;
list[2] = document.getElementById("t3").value;
list.sort();
alert("min:"+list[0]+",max:"+list[list.length-1]);
}
</script>
<input id="t2" type="text" value="8">
<input id="t3" type="text" value="6">
<input type="button" value="look" onclick="look();">
<script>
function look()
{
var list = new Array(3);
list[0] = document.getElementById("t1").value;
list[1] = document.getElementById("t2").value;
list[2] = document.getElementById("t3").value;
//list.sort();
//alert("min:"+list[0]+",max:"+list[list.length-1]);
alert(Math.max.apply(null, list));
alert(Math.min.apply(null, list));
}
</script>
<input id="t2" type="text" value="8">
<input id="t3" type="text" value="6">
<input type="button" value="look" onclick="look();">
<script>
function look()
{
alert(Math.max.call(null
,document.getElementById("t1").value
,document.getElementById("t2").value
,document.getElementById("t3").value
));
alert(Math.min.call(null
,document.getElementById("t1").value
,document.getElementById("t2").value
,document.getElementById("t3").value
));
}
</script>
后者比前者效率高的依据在哪里?
if(!nParam)var nParam=1;
switch(nParam){
case 2: return oAr.reverse();
case 3: return oAr.sort(function(a,b){return a-b;});
case 4: return oAr.sort(function(a,b){return b-a;});
default: return oAr.sort();
}
} // shawl.qiu script
Array.sort() 对于乱序有数组而言,操作的次数要多于单循环的操作数,所以效率不如上者。第二个回复用call我算是画蛇添足了。
Array.sort() 对于乱序有数组而言,操作的次数要多于单循环的操作数,所以效率不如上者。max是O(n)级的,而排序算法至少是O(nlogn)级的。