javascript 數(shù)組排序發(fā)現(xiàn)一個(gè)我原來不知道的事情:
test1.html
<
html
>
<
body
>
<
script
type
="text/javascript"
>
var
y
=
new
Array(
10
,
30000
,
12
);
y.sort();
alert(y);
</
script
>
</
body
>
</
html
>
排序結(jié)果正確(按我自認(rèn)為從小到大的順序,暫且把這種觀點(diǎn)認(rèn)為是正確的)。
test2.html
<
html
>
<
body
>
<
script
type
="text/javascript"
>
var
y
=
new
Array(
36000
,
500
,
10100
);
y.sort();
alert(y);
</
script
>
</
body
>
</
html
>
排序結(jié)果不正確。
當(dāng)時(shí)就納悶了,隨后發(fā)現(xiàn)他是按照首字母來排序的。我服了javascript。
隨后查看手冊解釋如下:
sort 方法
返回一個(gè)元素已經(jīng)進(jìn)行了排序的 Array 對象。

arrayobj.sort(sortfunction)

參數(shù)
arrayObj

必選項(xiàng)。任意 Array 對象。

sortFunction

可選項(xiàng)。是用來確定元素順序的函數(shù)的名稱。如果這個(gè)參數(shù)被省略,那么元素將按照 ASCII 字符順序進(jìn)行升序排列。
唉,錯(cuò)怪javascript了,本來人家是說清楚了的。只是我沒有看手冊,覺得java程序里就直接用sort對int 數(shù)組排序。沒有帶什么參數(shù)的。
終歸一句話,我沒有仔細(xì)看書啊。
隨后加入:
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中也不是我想像中的那么個(gè)用法,馬上用記事本寫了個(gè)程序,我一般家里電腦不裝IDE ,基本不是用來編程的。所以也沒有自動(dòng)提示之類的。
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]);
}
}
}
順利通過,不過通過之前還是發(fā)生過小錯(cuò)誤,那就是直接用了x.sort.唉,看來我還是應(yīng)該反復(fù)復(fù)習(xí)老知識(shí)啊。自從轉(zhuǎn)行寫JSP 后(而其中我基本使用JSTL不寫一行<%%>所以知識(shí)都忘了些。)
特此總結(jié),記錄。希望日后能仔細(xì)點(diǎn)。
posted on 2007-07-01 03:16
-274°C 閱讀(3600)
評論(4) 編輯 收藏 所屬分類:
web前端