排序問(wèn)題,如何理解函數(shù) function sortNum(a,b) {return b-a;},這表示重寫底層函數(shù)嗎?
如何理解函數(shù) ?function sortNum(a,b) {return b-a;},這表示重寫底層函數(shù)嗎?另外document.write(myarr.sort(sortNum));中sortNum表示函數(shù)為什么不寫成sortNum()呢?
<!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 b-a;
? ?}
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum));
</script>
</head>
<body>
</body>
</html>
2016-07-16
關(guān)于sortNum()是否可以這樣理解:以兩個(gè)數(shù)為例a,b通過(guò)a-b判斷a-b的差與1和-1的大小關(guān)系。sort()函數(shù)自帶排序的方法? 再利用sort()函數(shù)的判斷依據(jù)( 若返回值<=-1,則表示 A 在排序后的序列中出現(xiàn)在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現(xiàn)在 B 之后。)這樣的話就把a(bǔ)和b排列好。當(dāng)然多個(gè)的話,可以從左至右兩兩相比較!至于ortNum表示函數(shù)為什么不寫成sortNum()呢?這個(gè)我也不清楚
2016-07-10
sort(?? );括號(hào)中要有一個(gè)函數(shù)來(lái)確定排列順序。 sortNum(a,b)就是這個(gè)確定排列順序的函數(shù)。a,b不是參數(shù),
在sort中直接寫 sort(sortNum)就可以。? return a-b是升序,return b-a是降序。
2016-07-10
?function sortNum(a,b) {return b-a;},這表示重寫底層函數(shù)嗎也可以這么理解,因?yàn)?return b-a ?表示重新排列數(shù)組里的順序,document.write(myarr.sort(sortNum));中sortNum表示函數(shù)為什么不寫成sortNum()呢?因?yàn)閟ort()的語(yǔ)法為: ?stringobject.sort(函數(shù)方法); ?說(shuō)明里面可以放方法?sortNum() 。
2016-07-10
實(shí)際上代碼可以寫成:
1行 ? ? document.write(myarr.sort(function?(a,b){
2行 ? ? return?a?-?b;
3行 ? ? }))
而這里涉及到一個(gè)函數(shù)指針傳遞的問(wèn)題(再次強(qiáng)調(diào),是傳遞函數(shù)指針,而不是調(diào)用函數(shù))。
假如定義 function test(){}; ,對(duì)于這個(gè)函數(shù),test(即函數(shù)名)就是函數(shù)指針,test?指向函數(shù)主體。在實(shí)際些代碼中,我們可以將函數(shù)名替換為一個(gè)匿名函數(shù),即 function(){},也就是我上面的那種寫法。