亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

?sort()接收的比較函數

sort()接收的比較函數

function sortNum(a,b) {

if(a>b){

return 1;

}

else if(a<b){

return -1;

}

else{

return 0;

}

}

為什么不行?js高程是看的

正在回答

4 回答

你把數組中的雙引號都去掉就可以了,如果不去雙引號比較的是ASC||碼的大小


1 回復 有任何疑惑可以回復我~
#1

風到這里就是粘 提問者

非常感謝!
2017-07-27 回復 有任何疑惑可以回復我~

a,b比較返回的不是boolean值?

0 回復 有任何疑惑可以回復我~

你數組中的不是數,是字符串。你把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>

1 回復 有任何疑惑可以回復我~
#1

風到這里就是粘 提問者

非常感謝!
2017-07-27 回復 有任何疑惑可以回復我~

a和b比較的,return只能返回a或者b ?

?return a ?

?return b?


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468836    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

?sort()接收的比較函數

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號