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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

麻煩詳細解釋:sort()方法中傳一個比較函數其中到底是怎么比較的?

麻煩詳細解釋:sort()方法中傳一個比較函數其中到底是怎么比較的?

Ewall_ 2016-12-27 20:01:04
function compare(value1,value2){? ? ? if(value1<value2){? ? ? return -1;? ? ? }else if(value1>value2){? ? ? return 1;? ? ? }else{? ? ? return 0;? ? ? }? ? ?} ? ? ?? ? ?var test=[0,1,4,5,15,6,4];? ? ?var result=test.sort(compare);? ? ?console.log(result);
查看完整描述

1 回答

?
IvanAstrochicha

TA貢獻2條經驗 獲得超1個贊

sort()其實是冒泡排序的,把數組的內容轉變為字符,相鄰數組元素兩兩按照ASCII碼進行比較,第一次比較ASCII最大的數組元素最在數組末端,第二次第二大的數組元素排在array.length-2位置,依此類推進行排序。

但是,你上面的例子,輸出的結果并不是想象中的,因為轉變為字符排序,并不是數字排序,可以在compare方法中對value1和value2進行parseInt()轉變即可。

查看完整回答
1 反對 回復 2016-12-28
  • Ewall_
    Ewall_
    如果現在我把數組里0和1取出來比較,return返回的是-1,這時候兩個數組元素是怎么排的?
  • IvanAstrochicha
    IvanAstrochicha
    你說的這種情況數組元素位置不變。如果value1 > value2,就調換位置 。
  • 1 回答
  • 1 關注
  • 1488 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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