javascript 数组排序

javascript 数组排序发现一个我原来不知道的事情:

test1.html

< html >
< body >
< script type ="text/javascript" >
var y = new Array( 10 , 30000 , 12 );
y.sort();
alert(y);
</ script >
</ body >
</ html >


排序结果正确(按我自认为从小到大的顺序,暂且把这种观点认为是正确的)。

test2.html


< html >
< body >
< script type ="text/javascript" >
var y = new Array( 36000 , 500 , 10100 );
y.sort();
alert(y);
</ script >
</ body >
</ html >


排序结果不正确。

当时就纳闷了,随后发现他是按照首字母来排序的。我服了javascript。
随后查看手册解释如下:
[quote]
sort 方法
返回一个元素已经进行了排序的 Array 对象。

arrayobj.sort(sortfunction)

参数
arrayObj

必选项。任意 Array 对象。

sortFunction

可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
[/quote]



唉,错怪javascript了,本来人家是说清楚了的。只是我没有看手册,觉得java程序里就直接用sort对int 数组排序。没有带什么参数的。

终归一句话,我没有仔细看书啊。

随后加入:
test2.html

< html >
< body >
< script type ="text/javascript" >
function AscSort(x, y)
{
return x == y ? 0 : (x > y ? 1 : - 1 );
}

function DescSort(x, y)
{
return x == y ? 0 : (x > y ? - 1 : 1 );
}
var y = new Array( 36000 , 500 , 10100 );
y.sort(AscSort);
alert(y);
</ script >
</ body >
</ html >




便得到我所谓的正确排序了。呵呵。
于是怀疑java中也不是我想像中的那么个用法,马上用记事本写了个程序,我一般家里电脑不装IDE ,基本不是用来编程的。所以也没有自动提示之类的。


import java.util. * ;
public class test
{
public static void main(String []args)
{
int [] x = new int [] { 1 , 2 , 3 , 9 , 4 } ;
Arrays.sort(x, 0 ,x.length);
for ( int i = 0 ;i < x.length;i ++ )
{
System.out.println(x[i]);
}
}
}



顺利通过,不过通过之前还是发生过小错误,那就是直接用了x.sort.唉,看来我还是应该反复复习老知识啊。自从转行写JSP 后(而其中我基本使用JSTL不写一行<%%>所以知识都忘了些。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值