課程
/前端開發
/JavaScript
/JavaScript進階篇
sort()接收的比較函數
function sortNum(a,b) {
if(a>b){
return 1;
}
else if(a<b){
return -1;
else{
return 0;
為什么不行?js高程是看的
2017-07-26
源自:JavaScript進階篇 7-22
正在回答
你把數組中的雙引號都去掉就可以了,如果不去雙引號比較的是ASC||碼的大小
風到這里就是粘 提問者
a,b比較返回的不是boolean值?
你數組中的不是數,是字符串。你把sortNum函數換成下面這個就可以了。
function sortNum(a,b){
return a - b;//從小到大排列,如果想從大到小排列換成b - a就可以了。
如果你不想改這個函數,那就需要用另一種辦法先把myarr這個數組中的字符串轉換成數。
例如可以這樣
<!DOCTYPE html><html>?? ?<head>?? ??? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />?? ??? ?<title>Array對象 </title>?? ??? ?<script type="text/javascript">/*?? ??? ?function sortNum(a,b) {?? ??? ??? ?return a - b;?? ??? ?}*/?? ??? ?function sortNum(a,b) {?? ??? ??? ?if(a>b){?? ??? ??? ??? ?return 1;?? ??? ??? ?}?? ??? ??? ?else if(a<b){?? ??? ??? ??? ?return -1;?? ??? ??? ?}?? ??? ??? ?else{?? ??? ??? ??? ?return 0;?? ??? ??? ?}?? ??? ?}?? ??? ?var myarr = new Array("80","16","50","6","100","1");?? ??? ?for (var i = 0,len = myarr.length; i < len; i++) {?? ??? ??? ?myarr[i] = Number(myarr[i]);?? ??? ?}?? ??? ?document.write(myarr.sort(sortNum));?? ??? ?</script>?? ?</head>?? ?<body>?? ?</body></html>
a和b比較的,return只能返回a或者b ?
?return a ?
?return b?
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答求問 sort的比較
3 回答比較函數2
1 回答sort(sortNum)函數
1 回答比較方法函數的 類型 問題
2 回答數組排序,sort()函數
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-26
你把數組中的雙引號都去掉就可以了,如果不去雙引號比較的是ASC||碼的大小
2017-09-21
a,b比較返回的不是boolean值?
2017-07-26
你數組中的不是數,是字符串。你把sortNum函數換成下面這個就可以了。
function sortNum(a,b){
return a - b;//從小到大排列,如果想從大到小排列換成b - a就可以了。
}
如果你不想改這個函數,那就需要用另一種辦法先把myarr這個數組中的字符串轉換成數。
例如可以這樣
<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
?? ??? ?<title>Array對象 </title>
?? ??? ?<script type="text/javascript">
/*?? ??? ?function sortNum(a,b) {
?? ??? ??? ?return a - b;
?? ??? ?}*/
?? ??? ?function sortNum(a,b) {
?? ??? ??? ?if(a>b){
?? ??? ??? ??? ?return 1;
?? ??? ??? ?}
?? ??? ??? ?else if(a<b){
?? ??? ??? ??? ?return -1;
?? ??? ??? ?}
?? ??? ??? ?else{
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?var myarr = new Array("80","16","50","6","100","1");
?? ??? ?for (var i = 0,len = myarr.length; i < len; i++) {
?? ??? ??? ?myarr[i] = Number(myarr[i]);
?? ??? ?}
?? ??? ?document.write(myarr.sort(sortNum));
?? ??? ?</script>
?? ?</head>
?? ?<body>
?? ?</body>
</html>
2017-07-26
a和b比較的,return只能返回a或者b ?
?return a ?
?return b?