sortNum(a,b)這個函數使用的時候不應該傳參嗎?
<script?type="text/javascript"> ??function?sortNum(a,b)?{ ??return?a?-?b; ?//升序,如降序,把“a?-?b”該成“b?-?a” } ?var?myarr?=?new?Array("80","16","50","6","100","1"); ??document.write(myarr?+?"<br>"); ??document.write(myarr.sort(sortNum)); </script>
不懂這個函數的意思,前面有人解釋a,b可以理解為數組下標,可是下標怎么能體現數組的值呢
2019-06-08
sortNum()被傳進去的時候其實是以“函數指針”的方式傳進去的,因為在JS里面,函數也被當作對象處理,所以也是可以被當作參數傳遞的。也就是你傳遞了一個函數對象給array.sort()。
我覺得你想問的是既然沒有傳遞那些元素進去,到底是怎么排序的。其實我們自定義的sortNum()被傳入array.sort()之后,由array.sort()將數組里的元素兩兩傳入sortNum()來進行大小比較,也就是說不需要我們手動傳入數組元素。
2019-05-30
不要亂理解! myarr.sort(sortNum) 相當于 myarr.sort(function sortNum(a,b) { return a -b;})。
至于為什么這樣寫,建議查看文檔??es6關于該方法的解釋
2019-05-21
我的理解就是固定格式
2019-04-02
我的理解,指的不是下標,而是ASCII碼,a為97,b為98,a-b是指按ASCII碼進行升序排列
2019-03-09
a,b傳遞的應該不是下標而是數組內的元素,sort()排序是對數組內的元素進行排序,所以取出來比較的不是下標而是元素。