沒(méi)弄清楚升序降序的問(wèn)題
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Array對(duì)象 </title>
<script type="text/javascript">
? ?function sortNum(a,b) {
? ?return a - b;
? ?} ?//實(shí)現(xiàn)升序功能?這樣寫為什么就能實(shí)現(xiàn)升序功能
? ?function asortNum(a,b) {
? ? ? ?return b - a;
? ?} //實(shí)現(xiàn)降序功能?為什么能起到降序作用。
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum)+"<br/>");
document.write(myarr.sort(asortNum));
</script>
</head>
<body>
</body>
</html>
這段代碼實(shí)現(xiàn)了數(shù)組元素的升序和降序排列。關(guān)鍵是sort里面的函數(shù)起到了作用??墒悄莻€(gè)函數(shù)為什么是這樣寫的,只是定義了a和b,并沒(méi)有定義a-b是大于0還是小于0 ?為什么就是升序了。。。。
2016-11-22
想復(fù)雜了,a-b ?不是a減b的意思,是a至b。b-a也是同理。我們英文字母 正常?排序是不是a,b,c,d,e,f,g。所以a至b就是正序,b-a就是倒序。 不關(guān)什么大于0,小于0的什么事。
2016-11-22
return a-b;
80-16=64;
80-50=30;
80-6-74;
80-100=-20;
80-1=79;
79,74,64,30,-20;
1,6,16,50,100;
/////////////
return b-a;
16-80=-64;
50-80=-30;
6-80=-74;
100-80=20;
1-80=-79;
20,-30,-64,-74,-79;
看的懂就看,看不懂就算了
100,50,16,6,1;
------------------------------------------------------來(lái)自問(wèn)題評(píng)論 ------menghuanbaolei
意思是說(shuō)a-b就是用第一個(gè)數(shù)減去其他數(shù),結(jié)果由大到小排序,是不是結(jié)果越小,對(duì)應(yīng)的數(shù)就越大。
所以79,74,64,30,-20 -------->1,6,16,50,100 是由小到大排序的
b-a的話其他數(shù)減去第一個(gè)數(shù),結(jié)果有大到小排序,是不是結(jié)果越小,對(duì)應(yīng)的數(shù)就越小
所以20,-30,-64,-74,-79 ?---------------->100,50,16,6,1是由大到小排序的